作成例

簡単なスニペット ファイルの作成方法を流れに沿って説明します。

コード スニペットを定義するスニペット ファイルは、拡張子が snippet の XML ファイルです。

この例では、スニペット ファイルを Visual Studio で編集します。メモ帳などのテキスト エディタでも編集できますが、Visual Studio では IntelliSence が利くため、タグや属性の記述が楽になります。

また、ここでは C# のコード スニペットを作成しますが、同じ要領で Visual Basic のコード スニペットも作成できます。

ファイルの作成

まずはファイルを作成します。[ファイル] メニューの [新規作成] – [ファイル] をクリックします。

「XML ファイル」を選択します。

ルート要素を次のように記述します。

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
</CodeSnippets>

スニペット ファイルのスキーマは Visual Studio 2005 の頃から変わっていませんので、使用している Visual Studio のバージョンが 2008 や 2010 の場合でも「2005」として構いません。

『MSDN ライブラリ』の説明では名前空間を「2008」とするように書かれていますが、「2008」にすると IntelliSence が利かなくなります。

スニペットの定義を記述する

CodeSnippets要素の中にCodeSnippet要素を記述します。

  <CodeSnippet Format="1.0.0">
  </CodeSnippet>

Format 属性は “1.1.0” にも対応しているようですが、公式のドキュメントでは解説されていないため、ここでは扱いません。

“1.1.0” にすると、”1.0.0″ では対応していない JavaScript やASP.NET のコードスニペットを定義できるようです。”1.0.0″ と “1.1.0” とでは、XML のスキーマが異なっています(それでも名前空間は同じです)。

ヘッダー情報

CodeSnippet 要素の中には、Header 要素と Snippet 要素を記述します。

Header 要素は、コード スニペットに関する情報を記述します。

    <Header>
      <Title>サンプル1</Title>
      <Shortcut>sample1</Shortcut>
    </Header>

Header 要素の中に記述できる要素は他にもありますが、ここでは主な要素のみ扱います。

コード内容

Header 要素の次に、Snippet 要素を記述します。

Snippet 要素は、挿入するコードの内容を記述します。挿入時に置換するコードの可変部分の定義もここに記述します。

    <Snippet>
      <Declarations>
        <Literal>
          <ID>name</ID>
          <Default>name</Default>
        </Literal>
        <Literal>
          <ID>value</ID>
          <Default>1</Default>
        </Literal>
      </Declarations>
      <Code Language="CSharp">int $name$ = $value$;
Console.WriteLine("$name$={0}", $name$);</Code>
    </Snippet>

これで、ひとまずコード スニペットができました。

コードそのものにはあまり意味がありません。コード スニペットの例として大目に見てください。

おさらい

おさらいも兼ねて、もう一つコード スニペットを定義しましょう。

先ほど記述した CodeSnippet 要素の次に、もうひとつ CodeSnippet 要素を記述します。

  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>サンプル2</Title>
      <Shortcut>sample2</Shortcut>
    </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>process</ID>
          <Default>処理</Default>
        </Literal>
      </Declarations>
      <Code Language="CSharp">Console.WriteLine("$process$ - 開始");
$selected$Console.WriteLine("$process$ - 終了");</Code>
    </Snippet>
  </CodeSnippet>

保存する

ファイルを保存します。

保存場所を「マイ ドキュメント」の Visual Studio 2010(Visual Studio 2008)フォルダの中にある「My Code Snippets」にします。

たとえば、C ドライブにインストールした Windows 7 で 「TestUser」という名前のユーザーが Visual Studio 2010 を使用しているときは、次の場所になります。

C:\Users\TestUser\Documents\Visual Studio 2010\Code Snippets\Visual C#\My Code Snippets

ファイルの種類を「XML ファイル」から「スニペット ファイル」に変更します。拡張子が .snippet になります。

これで、定義したコード スニペットが Visual Studio で使えるようになりました。Visual Studio を再起動しなくても、自動で認識されます。