createclass

glaze 09.05.08 21:24

Emacsin Lisp-funktio, joka tekee C++-luokan rungon tiedostonimen perusteella

 Tekstiversio  Arvo: 0 (0 ääntä)  Äänestä: +  -
(defun createclass ()
  (interactive)
  (setq classname (file-name-sans-extension (file-name-nondirectory buffer-file-name)))
  (insert 
"/**
 * " classname" 
 *
 * Author: Your name
 * Modified: " (format-time-string "%Y-%m-%d") "
 * Licence: GNU GPL
 */
#ifndef "(upcase classname)"
#define "(upcase classname)"

class " classname " {

  public:

  private:

};

#endif
"))

editoitu: 21:51 9.5.08
Akheron 21:44 9.5.08 
Tämä ei ole makro vaan ihan tavallinen funktio, Lispissä niillä on suuri ero. Lisäksi tuon luokan nimen voisi tallentaa muuttujaan jolloin saisi koodia lyhyemmäksi kun ei tarvitsisi kutsua file-name-sans-extension- ja file-name-nondirectory-funktioita montaa kertaa.
glaze 12:06 10.5.08 
Kiitos palautteesta, jospa nyt olisi parempi.
Akheron 21:56 11.5.08 
Parempi. Tekisin vielä tuon classname-muuttujan let:llä enkä setq:lla, koska näin päästään lähemmäs funktionaalisen ohjelmoinnin syvintä olemusta :)