Datei-Grundgerüst automatisch erstellen [MSVC]



  • Hallo...

    Mich nervt schon seit Ewigkeiten, dass ich immer, wenn ich eine neue Datei dem Projekt hinzufüge, danach noch alles selbst schreiben muss, obwohl es ja eigtl viel schneller automatisch generiert werden könnte...

    Also noch mal ganz langsam:
    Ich will, dass mein MSVC bei jeder Header-Datei, die ich hinzufüge so was generiert:

    #include "config.h"
    
    #ifndef DATEINAME_H_INCLUDED
    #define DATEINAME_H_INCLUDED
    
    ...
    
    #endif //DATEINAME_H_INCLUDED
    

    Eigentlich sollte das ja kein Problem sein, indem man einfach so ein "VS template" hinzufügt - allerdings habe ich nirgendwo etwas über deren Erstellung bzw Einbindung gefunden...
    Wär toll, wenn jmd von euch weiterwissen würde - wenn nicht, wär das zwar auch kein Prob, die paar Zeilen selbst zu schreiben, aber jedes mal, wenn ich sie tippe, fällt mir wieder auf, dass es da bestimmt nen ganz tollen Weg gibt und ich ihn nicht kenne ^^

    bb



  • Schreib Dir doch ein Makro in VBScript, das diese Zeilen in eine leere Datei einfügt.



  • Ich habe jetzt doch einen Artikel in der MSDN dazu gefunden:
    http://msdn.microsoft.com/en-us/magazine/cc188697.aspx#S2

    Allerdings kann ich in keine der beiden Combo-Boxen etwas schreiben und somit komm ich da schon wieder nicht weiter -.- Hatte da evtl mal jmd das gleiche Problem? [edit: MSVC9, Prof + SP1 - weil MSDNAA ^^]
    Bei der Beta des MSVC 10 scheint dieses Feature noch nicht implementiert zu sein (ist zumindest immer grau hinterlegt)...

    sri schrieb:

    Schreib Dir doch ein Makro in VBScript, das diese Zeilen in eine leere Datei einfügt.

    Das kann ich dann aber nicht iwie in das Dialogfenster einbauen (lassen), oder?
    Wäre also auch wieder relativ viel Arbeit, es zu nutzen -.-

    bb



  • Soweit ich weiss, geht das aktuell nur für C# und VB.NET...



  • Schade - ihr braucht so etwas wohl nie? Oder habt ihr irgendwelche Alternativen? Oo

    bb



  • unskilled schrieb:

    Das kann ich dann aber nicht iwie in das Dialogfenster einbauen (lassen), oder?
    Wäre also auch wieder relativ viel Arbeit, es zu nutzen -.-

    Einfach ein Tastenkürzel auf das Makro legen.

    1. Neue Datei erstellen
    2. Tastenkürzel drücken
    3. fertig


  • ganz so einfach ists dann aber doch nicht... dann muss ich den namen der include-guards wieder ändern etc - hatte mir iwie erhofft, dass man das komfortabler gestalten kann...
    aber so könnte man es wohl selbst mit den VS templates nicht machen... ich werds einfach jedes ma tippen - ganz so viele dateien, dass es nun stunden länger dauern würde, erstell ich ja nu au nich 😉

    bb



  • Das kann man alles automatisieren.

    iExtension = InStr(ActiveDocument.Name, ".")
    If iExtension > 0 Then
        strTemp = Left(ActiveDocument.Name, iExtension - 1)
        strHeaderName = "__" + strTemp + "_h"
    End If
    

    Und schon hast Du in strHeaderName den Namen für Deinen Includeguard.



  • Danke, mal gucken, ob ich dazu was sinnvolles bauen kann - ich les dann ma noch bissl was und werd dann morgen evtl noch die ein oder andere VB-Frage haben 😉

    bb


  • Administrator

    unskilled schrieb:

    Schade - ihr braucht so etwas wohl nie? Oder habt ihr irgendwelche Alternativen? Oo

    Ich benutze Visual Assist X 😉
    In Header Files drücke ich <H> -> <Enter> , gebe im erscheinenden Dialog ein Kürzel ein, da in meinen Headerguards das Projektkürzel oder der Hauptnamespace drin ist, und dann halt nochmals <Enter> . Fertig 🙂
    In Source Files reicht dann sogar nur <I> -> <Enter> . Dort wird dann eine Grundstruktur angelegt und das Header File eingebunden.

    Mit den Snippets von VAX geht das gann noch weiter. Da kann man sich für alles mögliche Grundstukturen bauen lassen, wie zum Beispiel auch für Klassen, Getter, Setter usw. usf. 🙂

    Und VAX kostet wirklich nicht alle Welt, zudem muss man nicht jedesmal erneuern, wenn man nicht will. Man kann auch nur alle 2 Jahre eine Auffrischung kaufen und braucht halt dann ein Jahr lang eine "ältere" Version.

    Aber ich denke mit ein paar Makros kommt man hier sicher auch gut zurecht. Kann man sich dann sogar in eine Toolbar einfügen, wenn man möchte, wodurch nur noch ein Klick notwendig ist 🙂
    Code Snippets wären auch noch eine Möglichkeit, allerdings unter VS2008 leider nur für C# und XML vorhanden. Da wäre dann etwas ähnliches möglich, wie ich es mit VAX gelöst habe. Dachte mal gelesen zu haben, dass es in VS2010 auch für C/C++ vorhanden sein wird, bin mir aber nicht mehr sicher.

    Grüssli



  • Ich fand Visual Assist X eigtl nicht so prall ^^
    Aber für das Problem scheint es wohl genau das zu sein, was ich mir vorgestellt hatte ^^ Offensichtlich hatte ich es einfach nicht lang genug probiert, um die Features zu entdecken 😃

    http://www.wholetomato.com/purchase/default.asp
    Ich nehm mal an, du meinst die Academic License für 49$ ?!
    Also ziemlich genau 35€...
    Und das kauft man halt dann für jede neue MSVC Version?! (bzw für jede, die man nutzt)
    Richtig?

    Dachte mal gelesen zu haben, dass es in VS2010 auch für C/C++ vorhanden sein wird, bin mir aber nicht mehr sicher

    Gut möglich - auf jeden Fall ist es bis jetzt offensichtlich noch nicht implementiert.
    Iwann hatte ich auch ma gelesen, dass der MSVC mehrere Bildschirme unterstützen sollte - aber das wird wohl erst in der 11 so sein - in der jetzigen Beta hab ich jedenfall nichts davon gesehen - dabei war ich gerad auf das Feature so gespannt 😃

    bb


Anmelden zum Antworten