Automatischer kommentierter Header für neue Codedateien
Dez
17
Von:
17.12.2003
Da ich schon vor einiger Zeit zum ersten mal über den Visual Studio .NET 2003 Automation Samples Link gestolpert war, beschloss ich, dass es an der Zeit wäre, unsere Quellcodes autom. mit einem gemeinsamen Header versehen.
Der Weg dorthin beschritt sich, zunächst relativ einfach. Das EventWatcher Add-in Sample bietet den Code um die Events abzufangen, wenn im Visual Studio eine neue Datei erzeugt wird.
Die einzige Schwierigkeit ergab sich daraus, wie ich eine Datei die nicht autom. in der Quellcode Ansicht öffnet kommentieren soll. Nachdem ich schon ein wenig experimentiert hatte, hatte ich bereits mit dem bewährten StreamReader und StreamWriter die Datei beschrieben. Das hatte allerdings den Nachteil, dass das VisualStudio danach fragt, ob man die Aenderungen (hier geht kein AE???) übernehmen möchte.
Deshalb entschloss ich mich, die Datei vorher zu schließen und danach wieder zu öffnen. Nur brauchte ich für DTE.OpenFile(...) einen Parameter vsViewKind. Dieser war dann auch gleich die Lösung für den eleganteren Weg zum Ziel, denn mit diesem Parameter lässt sich die Datei in der CodeAnsicht öffnen. (Man könnte Sie danach wieder schließen, aber eigentlich gefällt mir der zusätzliche Effekt, dass die Datei auch autom. im Code angezeigt wird, ganz gut.)
Falls jemand den gesamten Code haben möchte, stelle ich den gerne online. (Feedback)
Hier der für mich erkenntnisreichste Teil des Codes:
string sFilename = applicationObject.ActiveDocument.FullName;
applicationObject.ItemOperations.OpenFile(sFilename, Constants.vsViewKindCode);
TextSelection ts = (TextSelection) applicationObject.ActiveWindow.Selection;
ts.StartOfDocument(false);
ts.Insert("//e-llusions GbR (c) bla.gnarf.zäng", (int) vsInsertFlags.vsInsertFlagsInsertAtStart);
ts.StartOfDocument(false);