Créer des snippets pour augmenter votre productivité sur Visual Studio 2010

Visual Studio 2010 utilise comme beaucoup d’IDE, un système de snippet permettant d’augmenter la vitesse de frappe du code.

Utilisation d’une snippet

Par exemple, si vous entrez propf puis tapez 2 fois sur la touche TAB du clavier, l’IDE va générer pour vous une propriété privée ainsi qu’un get, set :

propf

Les zones oranges sont les zones éditables lors de la création. Il est possible de passer d’un de ces champs à un autre en pressant la touche TAB du clavier.

Il est existe un grand nombre de snippets déjà définies dans Visual Studio (if, while, prop, propf, etc.). Pour en voir la liste, faites un clic droit dans le code -> Insert Snippet ou plus rapidement en faisant un Ctrl+K, X. Les snippets de Visual Studio sont en fait des fichiers XML disponibles dans le dossier : C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Visual C# pour les snippets relatives au C#.

Création d’une snippet

Il est également possible de créer vos propres snippets directement dans Visual Studio en créant un fichier XML ayant pour extension .snippet. La structure du fichier est définie comme ceci :

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>MyTitle</Title>
      <Shortcut>MyShortcut</Shortcut>
      <Description>My description</Description>
      <Author>MyName</Author>
      <SnippetTypes>
        <!-- snippet types -->
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>MyField</ID>
          <ToolTip>My field tooltip</ToolTip>
          <Default>MyDefaultValue</Default>
        </Literal>
      </Declarations>
      <Code Language="csharp">
        <![CDATA[string $MyField$;]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>

En détail :

  • Title : nom de votre snippet
  • Shortcut : raccourci à taper avant de presser la touche TAB 2 fois pour afficher le contenu de la snippet
  • Description : description de la snippet
  • Author : nom du créateur de la snippet
  • SnippetTypes : type de snippet

Les snippets peuvent être de 3 types :

  1. SurroundsWith : indique vous pouvez encapsuler votre code à l’intérieur de la snippet (ex : if)
  2. Expansion : indique que le code sera insérer au niveau du curseur de la souris (ex : prop)
  3. Refactoring: indique que la snippet est utilisée pour le refactoring (ex : implementation d’une interface et insertion du throw new NotImplementedException(); dans le corps des méthodes). Il n’est pas possible de créer ce type de snippet.

Dans la balise Declarations, chaque balise Literalreprésente un champ que l’on va pouvoir modifier lors de l’utilisation de la snippet. Dans l’exemple ci-dessus, par défaut la valeur de MyField sera MyDefaultValue, mais il sera possible de la modifier très facilement. Une fois la snippet créée, le curseur se placera au début du mot MyDefaultValueet le surlignera pour faciliter sa modification. Une fois la création de la snippet terminée, pressez la touche ENTRER.

Vous l’aurez compris cette snippet permet de créer une variable de type string.

Installation d’une snippet

Maintenant que la snippet est créée, il faut l’ajouter à Visual Studio. Pour cela rendez-vous dans le menu Tools -> Code Snippet Manager ou plus rapidement avec le raccourci Ctrl+K, B.

Snippet manager Cliquez ensuite sur Import… et choisissez le fichier .snippetque vous venez de créer. Visual Studio va alors ajouter votre snippet au dossier C:\Users<Name>\Documents\Visual Studio 2010\Code Snippets\Visual C#\My Code Snippets. La snippet est maintenant disponible dans Visual Studio et ce pour tous vos projets.


Voir également