Partage de snippets via SVN

Chose n’est pas coutume, on va discuter un peu de Visual Studio (j’en entends déjà qui râle là au fond…). Oui mais c’est un peu aussi mon gagne pain (actuel), donc si l’astuce peut en intéresser quelques uns, pourquoi pas ;)

Un snippet, c’est un morceau de code. On en trouve tout partout sur le net (CodePlex, CodeProjects, …) en fonction des envies, des besoins, … L’idée ici est de créer ses propres snippets, afin de les intégrer un peu partout dans son code. Dans mon cas, j’en ai créé deux, pour l’exemple et pour pouvoir rapidement sérialiser et désérialiser mes classes en XML ;)

Le code qui correspond à la sérialisation / désérialisation est le suivant (en C#) :

System.IO.MemoryStream objMS = new System.IO.MemoryStream();
System.Xml.Serialization.XmlSerializer ser =
new System.Xml.Serialization.XmlSerializer( typeof( $ClassName$ ) );
ser.Serialize( objMS, $theObjectToSerialize$ );
string dump = System.Text.Encoding.UTF8.GetString( objMS.ToArray() );

Lors de l’insertion de cet exemple, Visual Studio mettra automatiquement le focus sur les valeurs entre ‘$’. Avec la complétion automatique en fonction du contexte de votre code, cela devient donc un jeu d’enfant d’ajouter ces petits morceaux de code super utiles. Dans ce cadre-ci, lors de l’insertion du snippet, on aura directement à rentrer le type de la classe dont l’objet à sérializer fait partie, puis le nom de la variable de l’objet. Easy.

Pour plus d’infos et pour la personnalisation de snippets, je vous renvoie sur le msdn.

Le truc intéressant maintenant est de partager ces snippets entre plusieurs utilisateurs via SVN. Commencez par créer un repository pour ces snippets, puis ouvrez Visual Studio et choisissez le menu Tools/Code Snippets Manager. De là, commencez par choisir le langage. Cliquez ensuite sur Add… pour pointer sur le répertoire où vos snippets sont stockés en local. Chaque utilisateurs devra effectuer cette étape sur sa machine. Résultat :

snippets