Intellisense-Codesnippets

Veröffentlicht: 19. Mai 2006

Von Lorenzo Minore

IntelliSense-Codesnippets sind eines der interessantesten neuen Features von Visual Studio® 2005. Codesnippets (Codeausschnitte) sind anpassbare Codefragmente zum schnellen und einfachen Bewältigen von Aufgaben. Mit geringem Aufwand können sie in eigenen Code eingefügt werden.

In dieser Kolumne möchte ich das Verwenden der mit Visual Studio 2005 installierten Codesnippets (Codeausschnitten), das Bearbeiten des vorhandenen und das Erstellen eines eigenen Satzes von Codeausschnitten, das Freigeben der Ausschnitte für andere Benutzer und das Auffinden weiterer Beispiele beschreiben. Dieser Artikel enthält auch Links zu englischsprachigen Seiten.

Auf dieser Seite

Einfügen von Codeausschnitten in den Code
Anpassen von Codeausschnitten
Verwalten von Codeausschnitten
Der Visual Basic Snippet Editor
Freigeben von Codeausschnitten
Die Leistungsstärke von Codeausschnitten
Der Autor

Einfügen von Codeausschnitten in den Code

Codeausschnitte können auf verschiedene Arten eingefügt werden. Beim Durchsuchen von Codeausschnitten im Editor können Sie die Einfügefunktion für Codeausschnitte verwenden. Klicken Sie dazu mit der rechten Maustaste in den Editor, und klicken Sie anschließend im Kontextmenü auf Ausschnitt einfügen. In Visual Basic® können Sie auch ein ? eingeben und anschließend die Tabulatortaste drücken, um dasselbe Ergebnis zu erreichen. Die Einfügefunktion verfügt über einige IntelliSense®-Features; so können Sie etwa zum Suchen des gewünschten Ausschnitts in der Ausschnittverzeichnisstruktur navigieren (siehe Abbildung 1). Neben einem ausgewählten Codeausschnitt wird ein QuickInfo-Feld angezeigt, das eine Beschreibung und einen Shortcut als jeweils zugeordnete Verknüpfung anzeigt.

Cc749757.fig01_IntellisenseCodesnippets(de-de,MSDN.10).gif

Abbildung 1: Einfügefunktion für Codeausschnitte

Für häufiger verwendete Codeausschnitte oder für Ausschnitte, auf die Sie schneller zugreifen möchten, können Sie die Verknüpfung in den Editor eingeben und zum Einfügen des Codes die Tabulatortaste drücken. Die Tastenkombination für einen Ausschnitt erfahren Sie entweder durch Markieren im Einfügefenster und Anzeigen der QuickInfo, oder durch Anzeigen im Codeausschnitt-Manager, auf den über das Menü Extras zugegriffen werden kann.

Die Einfügemethode "Verknüpfung plus Tabstopp" bietet einen nützlichen Effekt für Ausschnitte, die Schlüsselwörter als Verknüpfung verwenden. Zum Einfügen des "Select-Case"-Codeausschnitts können Sie in Ihrem Visual Basic-Code Select eingeben und die Tabulatortaste drücken (siehe Abbildung 2).

Cc749757.fig02_IntellisenseCodesnippets(de-de,MSDN.10).gif

Abbildung 2: "Select-Case"-Codeausschnitt

Wenn Sie nur einen Teil der Verknüpfung für einen Ausschnitt kennen, können Sie in Visual Basic den Anfang der Verknüpfung und ein ? eingeben und die Tabulatortaste drücken, um eine Vervollständigungsliste anzuzeigen (siehe Abbildung 3). Zum Einfügen eines Visual Basic-Ausschnitts aus dem Anwendungsverzeichnis können Sie beispielsweise app (das Verknüpfungspräfix für dieses Verzeichnis) oder lediglich ein a und ein ? eingeben und anschließend die Tabulatortaste drücken, um die Liste anzuzeigen. Beim Anzeigen der Liste wird der Titel des Ausschnitts zur derzeit ausgewählten Verknüpfung im QuickInfo angezeigt. Sie können in der Liste navigieren und durch Doppelklicken oder Drücken der Eingabetaste den ausgewählten Ausschnitt in Ihren Code einfügen.

Cc749757.fig03_IntellisenseCodesnippets(de-de,MSDN.10).gif

Abbildung 3: Ausschnittverknüpfungsliste

Visual Basic-Ausschnitte können auch einfach per Drag and Drop in den Code eingefügt werden. Wenn der Speicherort einer bestimmten Ausschnittdatei bekannt ist, kann diese einfach per Drag und Drop vom Windows® Explorer direkt in den Visual Basic-Code eingefügt werden!

Das Einfügen eines Ausschnitts kann natürlich auch rückgängig gemacht werden. Wenn Sie den falschen Codeausschnitt eingefügt oder nur versehentlich eine Verknüpfung verwendet haben, können Sie einfach den Befehl Rückgängig (Strg+Z) ausführen, um den ursprünglichen Code wiederherzustellen.

Anpassen von Codeausschnitten

Codeausschnitte unterscheiden sich von einfachen Fragmenten, die Sie im Editor kopieren und einfügen können.

Beim Einfügen eines Visual Basic-Codeausschnitts werden die dem Projekt die referenzierten Assemblys sowie der Codedatei automatisch die notwendigen Import-Anweisungen hinzugefügt, damit der Code ordnungsgemäß ausgeführt werden kann (dieses Feature wird allerdings in C#-Codeausschnitten nicht unterstützt).

Wirklich komfortabel werden Codeausschnitte durch die Ersetzungsfelder: grün hervorgehobene Bereiche, die alle Werte markieren, die üblicherweise zum Anpassen des Codeausschnitts an die jeweilige Aufgabe verändert werden. Sie können mit der Tabulatortaste oder der Tastenkombination UMSCHALT+TAB zwischen den einzelnen Ersetzungsfeldern navigieren. Jedes Feld verfügt über eine QuickInfo-Anzeige, die den Verwendungszweck beschreibt und über die Handhabung informiert.

In Visual Basic verfügen die Ersetzungsfelder über eine IntelliSense-Unterstützung zum Einsetzen der korrekten Werte. Durch Drücken von STRG+LEERTASTE in einem Ersetzungsfeld wird eine Liste der lokalen Variablen desselben Typs angezeigt, aus der Sie die passende Ersetzung auswählen können. In C# wird durch diese Tastenkombination dieselbe IntelliSense-Vervollständigungsliste wie beim Schreiben gewöhnlichen Codes angezeigt (siehe Abbildung 4).

Cc749757.fig04_IntellisenseCodesnippets(de-de,MSDN.10).gif

Abbildung 4: IntelliSense-Ersetzungsfelder

Beim Schreiben in ein Ersetzungsfeld erweitert sich die Eingabe automatisch. Drücken Sie die ESC-Taste, wenn die Eingabe ohne zusätzliche Erweiterung des Felds verwendet werden soll. Dies führt gleichzeitig zum Verlassen des Ersetzungsfelds.

Sind mehrere Ersetzungsfelder desselben Typs vorhanden, können diese verknüpft werden. Beim Ersetzen eines Ausdrucks werden gleichzeitig alle weiteren automatisch aktualisiert.

In Visual Basic werden die Ersetzungsfelder bis zum Schließen der Codedatei und aller verbundenen Dateien (ein Formular in der Entwurfsansicht muss ebenfalls geschlossen werden) hervorgehoben. In C# wird die Hervorhebung nach dem Drücken der Eingabetaste aufgehoben und Ihre Änderungen werden gespeichert. Sie können natürlich weiterhin Änderungen durchführen. Da der Ausschnitt jedoch zum Bestandteil Ihres Codes geworden ist, steht keine visuelle Unterstützung durch Hervorhebungen oder andere Features der Ersetzungsfelder zur Verfügung.

Verwalten von Codeausschnitten

Die mit Visual Studio installierten Codeausschnitte werden in einer Verzeichnisstruktur nach Inhalt und Einsatzzweck verwaltet. Öffnen Sie den Codeausschnitt-Manager, um alle Verzeichnisse und die darin enthaltenen Ausschnitte anzuzeigen. Klicken Sie auf Tools (Extras) und Code Snippets Manager (Codeausschnitt-Manager) (siehe Abbildung 5). In diesem Dialogfeld können Sie durch die Ausschnittordner navigieren und nützliche Informationen anzeigen. Durch Auswählen eines Ausschnitts wird der physische Speicherort auf dem Datenträger, eine kurze Beschreibung des Einsatzzwecks, die Verknüpfung und der Name des Ausschnittautors (für alle vorinstallierten Ausschnitte die Microsoft Corporation) angezeigt.

Cc749757.fig05_IntellisenseCodesnippets(de-de,MSDN.10).gif

Abbildung 5: Codeausschnitt-Manager

Im Codeausschnitt-Manager können Sie über die Schaltfläche Add (Hinzufügen) dem Stammverzeichnis der angezeigten Struktur vollständige Ordner hinzufügen. Auf diese Weise können Sie Ihrer Sammlung neue Ausschnitte hinzufügen, die Sie in einem Verzeichnis auf dem Datenträger gespeichert haben. Der hinzuzufügende Ordner darf auch Dateien enthalten, bei denen es sich nicht um Codeausschnitte handelt. Wenn Sie den Ordner im Codeausschnitt-Manager anzeigen, werden jedoch lediglich Unterverzeichnisse und Codeausschnitte angezeigt. Die aktuelle Position in der Strukturansicht hat keinen Einfluss auf die Position des neuen Ordners, er wird immer direkt dem Stammverzeichnis der Ausschnitte untergeordnet.

Mithilfe der Schaltfläche Import (Importieren) können der im Codeausschnitt-Manager angezeigten Verzeichnisstruktur ein oder mehrere Ausschnitte hinzugefügt werden. Nach dem Auswählen der zu importierenden Ausschnitte können Sie die Ordner auswählen, in denen die Ausschnitte abgelegt werden sollen.

Die Verzeichnisstruktur enthält einen Ordner mit dem Namen My Code Snippets (Meine Ausschnitte), in den Sie Ihre eigenen oder von anderen Benutzern bereitgestellten Codeausschnitte installieren sollten. Für das Modifizieren von mit Visual Studio 2005 installierten Codeausschnitten hat es sich bewährt, eine Kopie des jeweiligen Ausschnitts im Ordner My Code Snippets (Meine Ausschnitte) zu erstellen und diese zu bearbeiten, damit die Ursprungsversion erhalten bleibt.

Andernfalls benötigen Sie zum Modifizieren der mit Visual Studio installierten Codeausschnittdateien (ohne vorheriges Kopieren) Schreibberechtigungen für den Ordner Program (Programme) – diese werden üblicherweise nur Administratoren gewährt.

Mithilfe der Schaltfläche Remove (Entfernen) kann der derzeit ausgewählte Ordner einfach aus der vom Codeausschnitt-Manager angezeigten Verzeichnisstruktur entfernt werden. Der betroffene Ordner wird dabei nicht im Dateisystem gelöscht, sondern lediglich aus der Ansicht des Codeausschnitt-Managers entfernt. Über den Befehl Add (Hinzufügen) kann er jederzeit wieder angezeigt werden. Die Ansicht im Codeausschnitt-Manager stellt alle Ausschnitte dar, die Sie im Code-Editor einfügen können. Wenn Sie einen Ordner aus der Ansicht entfernen, können Sie aus der IDE heraus nicht mehr auf die im Ordner weiterhin enthaltenen Ausschnitte zugreifen.

Durch den Befehl Search Online (Onlinesuche) wird das MSDN®-Dialogfeld Search (Suchen) angezeigt, in das Sie Schlüsselwörter eingeben und nach Codeausschnitten suchen können. Leider funktioniert dieses Feature nicht immer wie erwartet, möglicherweise werden Ergebnisse für die eingegebenen Schlüsselwörter angezeigt, die in keinem Zusammenhang mit Codeausschnitten stehen. Für die Onlinesuche empfehle ich Ihnen die Verwendung einer Suchmaschine und die Eingabe von Schlüsselwörtern in Verbindung mit "code snippet" oder "IntelliSense Codesnippet", um bessere Ergebnisse zu erzielen.

Der Visual Basic Snippet Editor

Sie sind keineswegs auf die mit Visual Studio 2005 installierten Codeausschnitte beschränkt: Sie können eigene Ausschnitte schreiben oder von anderen Autoren beziehen.

Codeausschnitte sind letztlich XML-Dateien in einem bestimmten Format. Öffnen Sie zur Untersuchung des Formats einen Codeausschnitt in einem XML-Editor. Wenn Sie möchten, können Sie Codeausschnitte auch direkt in XML bearbeiten. Weitere Informationen zum verwendeten XML-Format für Codeausschnitte erhalten Sie in der MSDN Code Snippet Schema Reference (in englischer Sprache).

Einen einfacheren Weg zum Schreiben und Bearbeiten von Codeausschnitten bietet das Tool Visual Basic Code Snippet Editor (in englischer Sprache).

Beim Visual Basic Snippet Editor handelt es sich um ein SharedSource-Projekt der Visual Basic-Benutzercommunity in Zusammenarbeit mit dem Visual Basic-Team. Bill McCarthy, einer der Visual Basic-MVPs, hat den Großteil der Entwicklung und Fehlerbehebung für den Editor geleistet und die raffinierte Oberfläche entworfen, die ihn heute auszeichnet (siehe Abbildung 6).

Cc749757.fig06_IntellisenseCodesnippets(de-de,MSDN.10).gif

Abbildung 6: Snippet Editor

Nach dem Öffnen des Editors wird im linken Bereich eine Strukturansicht angezeigt, ähnlich der Ansicht im Codeausschnitt-Manager. Mithilfe eines darüber angezeigten Textfelds kann nach bestimmten Schlüsselwörtern gefiltert werden. Wenn Sie in der Strukturansicht einen Knoten auswählen und mit der rechten Maustaste darauf klicken, wird ein Kontextmenü mit verschiedenen Optionen zum Verwalten von Ausschnitten und Verzeichnissen angezeigt.

Der Snippet Editor und der Codeausschnitt-Manager verwenden dieselben Informationen in Bezug auf die Codeausschnittordner, nach dem Ändern dieser Informationen in einem der Tools sind sie auch im jeweils anderen sichtbar.

Der Snippet Editor ermöglicht das Entfernen eines einzelnen Ausschnitts, wenn Sie diesen im linken Bereich auswählen. In diesem Fall ist besondere Vorsicht beim Verwenden dieses Befehls angebracht, da der Ausschnitt auch im Dateisystem gelöscht wird. Sie können außerdem einem beliebigen Ordner einen neuen, leeren Ausschnitt hinzufügen oder einen vorhandenen öffnen.

Wenn Sie einen mit Visual Studio installierten Codeausschnitt bearbeiten möchten, empfehle ich Ihnen das Erstellen und Bearbeiten einer Kopie im Ordner My Code Snippets (Meine Ausschnitte). Je nach verwendeter Version des Snippet Editors wird der Ordner My Code Snippets(Meine Ausschnitte) möglicherweise in der Standardeinstellung nicht in der Strukturansicht angezeigt, Sie können das Verzeichnis jedoch einfach hinzufügen. Der Code eines Ausschnitts wird in der Editoransicht angezeigt, gleichzeitig wird in einem Vorschaubereich dargestellt, wie der Ausschnitt beim Einfügen in Code aussehen wird.

Unter dem Editorfenster werden fünf unterschiedliche Bereiche angezeigt, in denen Sie Ihren Ausschnitt weiter anpassen können. Im Bereich Properties können Sie Titel, Verknüpfung, Beschreibung, Autor, Sprache, Bereich und einen Hilfe-URL bearbeiten. Die meisten Eigenschaften sind selbsterklärend. Die Eigenschaft Scope (Bereich) bezieht sich auf das vom Ausschnitt dargestellte Codekonstrukt: eine Klassendeklaration, eine Memberdeklaration oder Teil eines Klassenmember-Codes. Dies kann möglicherweise missverständlich sein, wenn Sie annehmen, dass sich der Bereich auf den Gültigkeitsbereich des Ausschnitts bezieht. Diese Eigenschaft bezieht sich jedoch auf das durch den Codeausschnitt repräsentierte Codekonstrukt. Die Eigenschaft Help Url (Hilfe-URL) ist nicht aktiviert. Sie wird zwar in der Ausschnittdatei gespeichert, jedoch derzeit an keiner Stelle in der Visual Studio-IDE angezeigt. Andere Benutzer können diese Eigenschaft anzeigen, wenn sie Ihren Codeausschnitt im Editor öffnen.

Im Ersetzungsbereich können Sie zwischen den Ersetzungsfeldern navigieren und deren Eigenschaften bearbeiten oder neue erstellen. Einige Ersetzungseigenschaften werden nicht in allen Sprachen unterstützt. Die Felder Function (Funktion) und Editable (Änderbar) etwa werden in C#, jedoch nicht in Visual Basic unterstützt.

Markieren Sie einfach den Code im Editor, und klicken Sie in diesem Bereich auf die Schaltfläche +, um eine neue Ersetzung zu erstellen. Der Snippet Editor ermöglicht auch das Erstellen von verknüpften Ersetzungen. Dies erfolgt automatisch, wenn Ausdrücke gefunden werden, die mit dem im Ausschnittcode markierten Ausdruck übereinstimmen. Die Eigenschaften Replacement Kind (Art der Ersetzung) und Type (Typ) werden in Visual Basic zum Unterstützen von IntelliSense für dieses Feld verwendet. Stellen Sie sicher, dass diese ordnungsgemäß festgelegt werden, wenn Sie dieses Feature aktivieren möchten.

Auf den Registerkarten References (Verweise) und Imports (Importe) können Sie die referenzierten Assemblys und die mit dem jeweiligen Ausschnitt verknüpften Imports-Anweisungen angeben. Diese werden dem Projekt und der Codedatei beim Einfügen des Codeausschnitts automatisch hinzugefügt. Dieses Feature wird zurzeit ausschließlich in Visual Basic unterstützt. Unter Test können Sie den Codeausschnitt im rechten Bereich kompilieren und auf Fehler überprüfen.

Im Dialogfeld Options (Optionen) des Snippet Editors können Sie Schriftart und Darstellung des Tools anpassen und die zu verwendenden Sprachen auswählen. Die Sprachauswahl bezieht sich auf die in der Strukturansicht angezeigten Ausschnitte und die farbliche Kennzeichnung von Schlüsselwörtern im Code-Editor. Ein weiteres interessantes Feature ist der Befehl Save as .vsi (Als VSI-Datei speichern). Mithilfe dieser Option kann ein Codeausschnitt als VSI-Datei (Visual Studio Installer) gespeichert werden. Es handelt sich um das empfohlene Format zum Freigeben von Communityinhalten, das die Installation und damit die Weitergabe neuer Codeausschnitte sehr einfach macht.

Weitere Informationen zum Verwenden des Editors finden Sie in der Dokumentation, die Sie vom Snippet Editor Workspace (in englischer Sprache) herunterladen können. Hier können Sie auch Fehler melden, neue Editorfeatures vorschlagen oder den Quellcode herunterladen. Sie sollten sich ebenfalls einmal Snippy (in englischer Sprache) ansehen: ein anderes, von Gus Perez erstelltes Tool zum Erstellen von Codeausschnitten.

Freigeben von Codeausschnitten

Die beiden englischsprachigen Websites DotNetJunkies und GotCodeSnippets stellen Codeausschnitte zur Verfügung. Beide Websites bieten derzeit eine überschaubare Anzahl von Codeausschnitten an, sicherlich wird sich die Anzahl in den nächsten Monaten aber wesentlich erhöhen.

Die Codeausschnitte können Sie von diesen Sites im VSI-Format herunterladen. Doppelklicken Sie nach dem Herunterladen auf das VSI-Paket, um einen Assistenten für den Installationsvorgang zu starten, der unter anderem zur Angabe des Ordners, in den Sie die Ausschnitte speichern möchten, auffordert (siehe Abbildung 7). Wie bereits erwähnt, empfehle ich, die heruntergeladenen oder von anderen Entwicklern erhaltenen Ausschnitte von den von Microsoft erstellten Codeausschnitten zu trennen. Legen Sie zu diesem Zweck die Ausschnitte im Ordner My Code Snippets (Meine Ausschnitte) ab.

Cc749757.fig07_IntellisenseCodesnippets(de-de,MSDN.10).gif

Abbildung 7: Visual Studio-Inhaltsinstaller

Auch wenn Sie die Veröffentlichung oder Freigabe eigener Codeausschnitte planen, empfehle ich Ihnen die Verwendung des VSI-Formats, das Ihrer Zielgruppe die Installation so einfach wie möglich macht. Die einfachste Möglichkeit zum Erstellen einer aus mehreren Ausschnitten bestehenden VSI-Datei ist wahrscheinlich das Verwenden der Content Installer Powertoys (in englischer Sprache) von Craig Skibo, die auf GotDotNet zur Verfügung stehen. Das Content Installer-Tool führt Sie durch den Vorgang zum Erstellen eines Visual Studio-Installer-Pakets mit mehreren Codeausschnitten. Dieses Tool unterstützt auch das Erstellen von Paketen für andere Inhaltstypen.

Die Leistungsstärke von Codeausschnitten

Probieren Sie Codeausschnitte einmal aus. Die in Visual Studio enthaltenen Ausschnitte bieten eine Reihe von produktivitätssteigernden Lösungen. Die wirkliche Leistungsstärke dieses Features liegt allerdings in der Erweiterbarkeit. Der Snippet Editor, die Hostsites für Codeausschnitte, das VSI-Format und die Tools stellen der Benutzercommunity ein Framework zum Erstellen einer für alle verfügbaren und breit gefächerten Codeausschnittbibliothek zur Verfügung.

Senden Sie Fragen und Kommentare in englischer Sprache an basics@microsoft.com.

Der Autor

Lorenzo Minore arbeitet für Microsoft als Software Design Engineer im Visual Basic-Team an der Datendarstellung zur Entwurfszeit in Visual Studio. Gleichzeitig betreut er ein Team zur Förderung von IntelliSense-Codeausschnitten in der Visual Basic-Benutzercommunity. Sie erreichen Lorenzo unter lorenzom@microsoft.com (in englischer Sprache).

Anzeigen: