Generierung von Getters und Setters für C++ Klassen mit VIm

Ich selbst benutze zwar vi nicht als IDE zum Entwickeln, finde es aber sehr nützlich als mächtiges Search&Replace Tool. In diesem Beispiel geht es darum, wie man schnell aus privaten Member-Variablen einer (C++) Klasse die public Getter- und Setter-Funktionen erzeugen kann.
Die drei Variablen kopiere ich aus VisualStudio ins VIm:

QString _viewer;
QString _viewerArgs;
QString _previewRegex;

Wie man sieht, mein präferiertes Namensstil ( das ich von GoF übernommen habe ) ist für private Member: _memberName.
Die Getter heißen bei mir: const T & memberName () const;
Die Setter: void setMemberName (const T & memberName) ;

Die Getter erzeuge ich mit:

:1,$s/\(\w\+\)\s\+_\(\w\+\).*/const \1 \& \2() const {return _\2;}/

Ergebnis:

const QString & viwer const {return _viewer;};
const QString & viwerArgs const {return _viewerArgs;};
const QString & previwRegex const {return _previewRegex;};

Den Code copiere ich in public-Bereich der Klasse in VisualStudio und mache UNDO in VIm mit “ESC u”:
Und ähnlich für die Setters. Dabei wird der erste Buchstabe nach _ in Großbuchstaben konvertiert (\u):

:1,$s/\(\w\+\)\s\+_\(\w\)\(\w\+\).*/void set\u\2\3(const \1 \& \2\3){ _\2\3 = \2\3;}/

Ergebnis:


void setViwer(const QString & viewer){ _viewer = viewer;}
void setViwerArgs(const QString & viewerArgs){ _viewerArgs = viewerArgs;}
void setPreviwRegex(const QString & previewRegex){ _previewRegex = previewRegex;}

About admin

Comments are closed.