[VS2010] Les snippets et Visual Studio (2/3)

Création d’un snippet

Un snippet est en réalité un fichier XML qui est disposé dans le dossier de configuration des snippets de Visual Studio 2010. En vous rendant dans ce dossier (« C:\Users\[Vous]\Documents\Visual Studio 2010\Code Snippets\Visual C#\My Code Snippets »), vous y trouverez vos snippets mais également les snippets de VS2010.

Pour avoir votre propre snippet, créer un nouveau fichier XML que vous enregistrez avec l’extension « .snippet » et basez vous sur l’exemple ci-dessous.

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
		<Header>
			<Title>propdpsl - Define a DependencyProperty</Title>
			<Author>idys</Author>
			<Description>Create a Silverlight DependencyProperty</Description>
			<HelpUrl></HelpUrl>
			<Shortcut>propdpsl</Shortcut>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
			</SnippetTypes>
		</Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>Property Type</ToolTip>
                    <Default>int</Default>
                </Literal>
                <Literal>
                    <ID>property</ID>
                    <ToolTip>Property Name</ToolTip>
                    <Default>MyProperty</Default>
                </Literal>
                <Literal>
                    <ID>ownerclass</ID>
                    <ToolTip>The owning class of this Property.  Typically the class that it is declared in.</ToolTip>
                    <Default>ownerclass</Default>
                </Literal>
                <Literal>
                    <ID>defaultvalue</ID>
                    <ToolTip>The default value for this property.</ToolTip>
                    <Default>null</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp">
                <![CDATA[
					 #region $property$ Property

					/// <summary>
					/// Propriété $property$
					/// </summary>
					public $type$ $property$
					{
						get { return ($type$)GetValue($property$Property); }
						set { SetValue($property$Property, value); }
					}

					/// <summary>
					/// Using a DependencyProperty as the backing store for $property$.  This enables animation, styling, binding, etc...
					/// </summary>
					public static readonly DependencyProperty $property$Property =
						DependencyProperty.Register("$property$", typeof($type$), typeof($ownerclass$), new PropertyMetadata($defaultvalue$));

					#endregion$end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

Description détaillée d’un snippet

Les différentes balises XML à retenir :

  • Title : titre du snippet
  • Author : vous 😉
  • Description : description du snippet
  • Shortcut : texte à saisir dans VS (ex: propdpsl)
  • SnippetTypes : type de snippet

Les snippets peuvent être de 3 types :

  • SurroundsWith : encapsule le code sélectionné au moment de la création du snippet
  • Expansion : insère le snippet au niveau du curseur de la souris
  • 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.

Prochaine étape : Installation d’un snippet directement dans VS2010.

Enjoy !