Créez votre propres Snippets avec Microsoft Code Snippet EditorDate de publication : 08/03/2006
Par
Ronald VASSEUR (autres articles)

Microsoft offre un petit outil, assez méconnu, nommé "Code Snippet Editor"
qui permet de réaliser ses propres "Code Snippets" et de les intégrer
directement dans Visual Studio 2005. Cet outil permet de créer des snippets
en VB.Net mais également en XML, J# et en C# (pour cela il faut activer la prise en charge
de ces langages dans les options du programme), voyons immédiatement
comment il fonctionne.
1. Les "Code Snippets" : qu'est-ce que c'est ?
2. Présentation de Microsoft Code Snippet Editor
3. Création d'un code snippet avec Code Snippet Editor
4. Conclusion
Ressources
1. Les "Code Snippets" : qu'est-ce que c'est ?
Microsoft fournit dans Visual Studio 2005 une fonctionnalité qui permet
d'insérer en bloc des "Code Snippets" (ou "extraits de code" dans
la langue de Molière) préexistants qui sont paramétrables en fonction
des besoins du développeur. Concrètement, Visual Studio 2005 intègre
de nombreux exemples de code, classés par thèmes, qui sont insérables
et paramétrables directement dans votre application, par un simple
clic droit, puis "Insérer un extrait" dans le menu contextuel;
vous avez alors accès à un grand choix de codes classés par thèmes.
Une fois le code inséré, il ne vous reste plus qu'à modifier en fonction
du Snippet les champs nécessaires. Par exemple, un snippet qui permet
de lire un fichier texte va vous demander de fournir le chemin du fichier,
pour cela dès l'insertion de l'extrait de code, les éléments à modifier
sont surlignés automatiquement, un "ToolTip" vous donne des informations
quand au champ et à la valeur qu'il doit contenir lors du survol avec la
souris de celui-ci.
Une bonne image valant souvent bien mieux que de longs discours,
voici la preuve par l'image.
 Un 'Code Snippet' dans Visual Studio 2005
Même si les Snippets fournis de base dans Visual Studio 2005 sont nombreux,
il arrivera sûrement un jour où vous allez dire "un Snippet sur telle fonction
que j'utilise tous les jours serait bienvenue". No problemo ! Il est tout à fait
possible de créer vos propres Snippets, et de les intégrer dans Visual Studio 2005.
Pour cela 2 possibilités :
- Manuellement : les snippets étant en fait de "simples"
fichiers XML il est tout à fait possible d'en créer avec votre
éditeur XML favoris.
- Semi-automatiquement : Microsoft propose pour cela un
éditeur tout à fait indispensable pour les plus fainéants d'entre
nous ;).
Cet outil se nomme trivialement " Code Snippet Editor ", voyons
sans plus tarder ce dernier plus en détails.
2. Présentation de Microsoft Code Snippet Editor
Tout d'abord, code Snippet Editor est un projet "Shared Source",
cela implique que l'on peut accéder à son code source en Visual Basic
.Net, celui-ci est d'ailleurs disponible par téléchargement; si
vous le souhaitez, libre à vous de lancer la chasse aux bugs.
Pour commencer, voici une capture d'écran de l'interface de Code
Snippet Editor :
 Interface graphique de Code Snippet Editor
La fonction principale de cet outil est donc de créer, de manière
semi-automatique, vos propres Snippets, ou alors de modifier les
Snippets existants. Pour cela, Code Snippet Editor possède une
interface graphique très simple qui ne propose que les options
nécessaires à cette tâche.
Code Snippet Editor propose une fenêtre principale avec, sur la
gauche, un explorateur de l'arborescence de Snippets déjà intégrés
dans votre Visual Studio 2005, sur la droite, une zone de texte
qui permet la saisie du code, puis, en bas à droite, il y a différents
onglets qui permettent de paramétrer correctement votre Snippet en
signalant les Namespaces et autres références à ajouter automatiquement
lors de l'utilisation de ce Snippet par le développeur. Ces onglets
permettent également de définir les champs à personnaliser, ainsi
que les diverses aides fournies au développeur, comme par exemple
les "ToolTips" qui sont affichés au survol de la souris. Enfin,
le dernier onglet permet lui de lancer la "compilation" du code
pour vérifier la validité syntaxique de celui-ci, en cas de problème
la sortie du compilateur est affichée et vous offre ainsi quelques
informations vous guidant dans la résolution du problème.
Après avoir présenté Code Snippet Editor, passons maintenant à la
réalisation d'un snippet de A à Z grâce à cet outil à mon avis
bien pratique.
3. Création d'un code snippet avec Code Snippet Editor
Pour voir concrètement la simplicité d'utilisation de Code Snippet
Editor, nous allons créer intégralement un petit Snippet, ici pas
de code complexe, le but est de voir la méthode à suivre.
L'exemple que je vais utiliser est un code tout simple, qui d'ailleurs
existe déjà dans les Snippets fournis avec Visual Studio 2005, il
permet de déplacer un fichier d'un emplacement vers un autre.
Après avoir lancé Code Snippet Editor, allez dans l'explorateur de
la partie gauche, sélectionner le dossier où vous souhaitez placer
votre Snippet (créez en un au besoin), puis par un clic droit
faites "Add new snippet", entrez alors le nom que vous
souhaitez donner à ce snippet : pour moi ce sera "DeplacerFichier".
Votre Snippet apparaît alors dans l'explorateur de la partie gauche,
double-cliquez sur votre nouveau Snippet, celui-ci est alors affiché
dans la partie droite de l'interface utilisateur ; pour le moment la
zone de code est bien évidemment totalement vide.
Saisissez le code dans la zone appropriée, je vous conseille de faire
un copier/coller depuis Visual Studio, en effet quoi de mieux que
notre logiciel préféré ;) pour taper du code Visual Basic .Net. Le
code à copier pour cet exemple sera donc :
| Code de notre Snippet | My.Computer.FileSystem.MoveFile(", ") |
Maintenant nous devons saisir un certain nombre de métadonnées pour
rendre notre Code Snippet plus convivial, en voici la liste pour
le premier onglet.
- Title : Déplacer des fichiers avec Visual Basic 2005 et My
- Shortcut : filDeplacerFichier
- Description : Ce Snippet permet de déplacer un fichier vers un nouvel emplacement.
- Author: Moi
- Scope : Member Body
- Help URL : adresse qui pointe vers une documentation ou une aide en ligne.
Passons au deuxième onglet : "Replacements". Comme son nom
l'indique il permet de définir les zones que le développeur devra
modifier pour adapter le Snippet à son application.
Notre Snippet de par sa conception impose à l'utilisateur de saisir
deux informations : le chemin source et le chemin destination. Pour
faire en sorte que lors de l'utilisation de ce Snippet le développeur
pense à surtout ne pas oublier de remplir les deux champs correspondant
nous allons paramétrer notre Snippet pour que celui-ci surligne
automatiquement les deux emplacements des chemins de fichier.
Pour ajouter un champ, il suffit de placer son curseur à l'endroit
désiré dans le code (ici les paramètres de la méthode MoveFile())
du snippet, puis après un "clic droit" choisir "Add Replacement".
Dès lors le champ est automatiquement ajouté et listé dans l'onglet
"Replacements", ne perdons plus un instant et modifions ces champs
à notre guise, voilà ce que, personnellement, j'ai modifié :
 Les deux chaînes de caractères ont été modifiées.
Je me positionne dans la liste sur le numéro 1 dans le code, celui-ci
est alors surligné en orange, et je modifie les propriétés suivantes :
- ID : cheminSource
- Defaults to : "c:\rep\fichier.txt"
- Type : String
- Replacement kind : literal
- Tooltip : Chemin complet d'origine du fichier
Propriétés du champ numéro 2 :
- ID : cheminDest
- Defaults to : "c:\repDest\fichier.txt"
- Type : String
- Replacement kind : literal
- Tooltip : Chemin de destination du fichier à déplacer
Onglet "Reference" et onglet "Imports" : ces deux onglets ici
ne sont pas utiles, ils servent respectivement à ajouter à votre
projet une référence vers une dll, et à faire un Imports du ou
des Namespaces nécessaires. Ici dans une situation de base nous
n'en avons pas explicitement besoin.
Maintenant, nous allons faire un test de compilation de notre Snippet :
pour cela, cliquez sur le bouton Test de l'onglet du même nom. Tout
se passe bien, et le compilateur nous renvoie le message suivant :
| Sortie du compilateur | Compilation found 0 error(s)
Compiled code:
---
Namespace aNamespace
Class aClass
Sub aMethod()
My.Computer.FileSystem.MoveFile("c:\rep\fichier.txt", "c:\repDest\fichier.txt")
End Sub
End Class
End NameSpace
--- |
Enfin, dernière étape, synchroniser les Snippets de Visual Studio
2005, avec les diverses modifications que nous venons de faire. Pour
cela, rien de difficile, il suffit de cliquer sur le bouton prévu
à cet effet qui se trouve juste au dessus du coin droit de l'onglet
"Preview".
 Synchronisation avec Visual Studio 2005
Il ne vous reste plus qu'à aller dans Visual Studio 2005 et voir
que votre Snippet est bel et bien en place et fonctionnel.
Voilà, c'est tout, rien de plus compliqué, nous venons de créer un
Code Snippet avec Code Snippet Editor et de l'intégrer dans Visual
Studio 2005.
Le système de Snippet repose sur des fichiers XML portant l'extension .snippet. Ces
fichiers (dans le cas de Snippet en Visual Basic .Net) se trouvent dans
le répertoire suivant : C:\Program Files\Microsoft Visual Studio 8\VB\Snippets\1036
Et voici le fichier XML qui est généré par Code Snippet Editor :
| Fichier XML contenant notre Snippet | <?xml version="1.0"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Déplacer des fichiers avec Visual Basic 2005 et My</Title>
<Author>Moi</Author>
<Description>Ce Snippet permet de déplacer un fichier vers un nouvel emplacement.</Description>
<Shortcut>filDeplacerFichier</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>cheminSource</ID>
<Type>String</Type>
<ToolTip>Chemin complet d'origine du fichier</ToolTip>
<Default>"c:\rep\fichier.txt"</Default>
</Literal>
<Literal>
<ID>cheminDest</ID>
<Type>String</Type>
<ToolTip>Chemin de destination du fichier à déplacer.</ToolTip>
<Default>"c:\repDest\fichier.txt"</Default>
</Literal>
</Declarations>
<Code Language="VB" Kind="method body"><![CDATA[My.Computer.FileSystem.MoveFile($cheminSource$, $cheminDest$)]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets> |
Comme vous pouvez le voir ce fichier XML n'est pas forcément complexe et impossible à écrire "à la main", mais
quand des outils faisant cela de manière automatique existent il ne faut pas s'en priver. Je tiens aussi à préciser
que notre exemple est très simple, avec un code long et complexe cela est une toute autre histoire ! :).
Il existe aussi un autre fichier XML nommé SnippetIndex.xml qui pour VB.Net est situé C:\Program Files\Microsoft Visual Studio 8\VB\Snippets\1036
qui lui reprend l'arborescence de tous les dossiers contenant des snippets. Si vous souhaitez modifier l'arborescence
des snippets au niveau de la racine il vous faudra alors modifier ce fichier pour que les modifications apparaissent
dans Visual Studio 2005, mais dans notre exemple cela n'est pas nécessaire.
4. Conclusion
L'outil Code Snippet Editor, fourni par Microsoft, est à mon sens
très utile et excellemment simple à utiliser, en effet, il n'est
pas nécessaire de se faire une entorse au cerveau avec un fichier
XML un schéma XSD, tout est automatisé. Cependant, si pour diverses
raisons ,il s'avérait indispensable de créer manuellement ses propres
Snippets, cela resterait tout à fait possible, en effet un Snippet
n'est dans l'absolu qu'un fichier XML (avec l'extension .snippet).
La création manuelle de Snippet pour Visual Studio 2005 fera d'ailleurs
l'objet d'un article dans les semaines à venir.
J'espère vous avoir fait découvrir et apprécier cet outil qui est, à
mon goût, simple d'utilisation, pratique, et, qui plus est, sous
licence "Shared Source".
Ressources
- Télécharger Code Snippet Editor :
Cliquez ici
- Site Shared Source Initiative pour "Code Snippet Editor":
Cliquez ici
Un très grand merci à Freegreg pour la relecture de cet article.
 
|