contact@apollossc.com | +33(0) 4 78 35 45 70
05
MAI
2014

Code Snippet avec Visual Studio

comment : 0

Comme de nombreux IDE, Visual Studio propose depuis des années la gestion de codes snippets.

Relativement mal connue, cette fonctionnalité de VS peut vous faire gagner pas mal de temps.
Certaines populations lointaines l’auront compris, jugez par vous-même : Google Trends.

Exemples d’existants en C#

Pour commencer parlons de la star que nous utilisons souvent sans le savoir.

if

Tappez « if » puis deux fois sur [TAB].

if (bool condition) {
	// Code
}

Les autres

Vous avez compris le principe, maintenant voici la liste C# made in msdn.

Et le VB.net

Ne soyons pas sectaires, le VB.net a aussi droit à sa petite boîte à outils (vous noterez que les codes snippets sont propres à chaque langages et que donc vous ne trouverez pas les même en C# qu’en VB.net ou qu’en Javascript).

Néanmoins après quelques recherches impossible de mettre la main sur le tableau msdn pour VB.net (ne nous accusez pas, c’est Microsoft). Nous vous laissons consulter (via Ctrl+K, Ctrl+B) la liste via le GUI.

La banque

Pour accéder au GUI des codes snippets : Ctrl+K, Ctrl+B

Vous verrez quelque chose comme ça :
CodeSnippet_GestionnaireExtraitesDeCode
Vous remarquerez que vous avez le choix des langages et que l’emplacement des snippets est précisé.

Pour y accéder depuis l’IntelliSense : Ctrl+K, Ctrl+X

Vous verrez quelque chose comme ça (filtré par rapport au contexte dans lequel vous êtes) :
CodeSnippet_CtrlK_CtrlX

Créer un code snippet à la mano

Comme beaucoup de choses sous Visual Studio un code snippet n’est qu’un fichier XML, donc humainement compréhensible.

Structure d’un code snippet

On va regarder un peu comment Microsoft construit ses codes snippets : ici un extrait (commenté par votre humble serviteur) du porpfull.snippet de C#.



  
  
    
propfull Extrait de code pour la propriété et le champ de stockage Microsoft Corporation Expansion
type Type de propriété int property Nom de la propriété MyProperty field La variable qui stocke cette propriété myVar private $type$ $field$; public $type$ $property$ { get { return $field$;} set { $field$ = value;} } $end$

Maintenant qu’on a compris comment ça marche dans le fond, on va vous faire gagner encore un peu de temps avec une extension de Visual Studio (ne me remerciez pas, on vous l’a dit chez Apollo on partage).

Snippet Designer

J’ai choisi cette extension pour des raisons pratiques : elle est disponible sur Visual Studio 2010, 2012, 2013 ; et pour ne rien gâcher elle est opensource ce qui laissera aux curieux le loisir de regarder comment on code une extension VS.

Lien vers CodePlex et vers VisualStudioGallery.

Et maintenant, créons

Laissez votre esprit débridé s’exprimer : Fichier > Nouveau fichier… > Snippet Designer > Code Snippet

Vous devriez avoir quelque chose comme ça :
CodeSnippet_Extension

Pour vous faire un tour rapide du propriétaire :
(1) La partie Header du XML
(2) Les déclaration sur XML
(3) La joie, le bonheur, l’émotion : le code

Bibliothèques

Parce que dans notre ADN de développeurs on a le partage, l’amour de la communauté et la flemme : pas mal de nos confrères ont déjà mis en ligne des centaines de codes snippets (rarement au format .snippet mais maintenant ça n’a plus de secret pour vous).

Ajouter nos créations à Visual Studio

Depuis le GUI (Ctrl+K, Ctrl+B) on peut en Ajouter, en Supprimer et en Importer (ils sont comme ça chez Microsoft, prévoyants…).
Pour installer vous pouvez esquiver l’import et coller vos *.snippet directement dans « C:\Users\{MySuperUserName}\Documents\Visual Studio 2010\Code Snippets\ ».

Note aux Chefs de projets

A tous les CDP perdus dans ces lignes, entendez ma Parole.
« Coder des codes snippets est un investissement temps ; mais coder des codes snippets n’est pas une perte de temps. »
Le temps que vos développeurs mettront à récupérer des sources utiles, ils le regagneront largement lorsqu’ils les sortiront comme par magie.
Croyez-moi, rechercher sur les projets précédents comment calculer le hash d’une chaîne ou à recopier une 45ème fois une propriété publique avec un setter privé n’a rien de valorisant et d’utile. Et après la lecture de cet article vos développeurs devraient gagner en productivité.

Pour aller plus loin

Pour conclure sur l’usage

La fonction Code Snippet peut être utilisée par tous et devrait servir de base à une boîte à outils du développeur. Nous devrions tous en avoir ne serait-ce que pour gagner du temps.
Certains projets nécessitant des structures spécifiques pourraient même avoir un répertoire « Snippet » pour permettre aux développeurs futur d’enrichir leur propre banque d’extraits de code.

Les versions récentes de Visual Studio peuvent embarquer de nouvelles fonctionnalités qui poussent la notion de Code Snippet en dehors de l’exécution de notre EDI pour aller chercher sur Internet des extraits de code utiles.

Néanmoins pour que cela fonctionne nous devons tous jouer le jeu et partager un peu de notre savoir pour faire progresser les masses sur Internet ou dans nos équipes.

Nous restons, bien entendu à votre écoute pour toutes informations, questions, avis, critiques, propositions, candidatures, projets, idées…

A propos d'apollo ssc
Yann SAMAMA-TIER, chef de projet et consultant pour PSA, Groupama, le Crédit Agricole, la Sicovam,... Il oeuvre depuis plus de 20 ans dans le monde fascinant et merveilleux des SSII en France et en Suisse. Il est fondateur et dirigeant de plusieurs sociétés depuis 2000 dont Apollo SSC et Apollo Formation.

Laissez nous une réponse

captcha *