チュートリアル: コード スニペットを作成する
適用対象:Visual Studio
Visual Studio for Mac
Visual Studio Code
コード スニペットは、わずかな手順で作成できます。 必要な操作は、XML ファイルを作成し、適切な要素を指定して、コードを追加するだけです。 必要に応じて、置換パラメーターとプロジェクト参照を利用できます。 ご利用の Visual Studio インストールにスニペットをインポートするには、コード スニペット マネージャー ( [ツール]>[コード スニペット マネージャー] ) の [インポート] ボタンを使用します。
スニペット テンプレート
基本的な XML スニペット テンプレートを次に示します。
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title></Title>
</Header>
<Snippet>
<Code Language="">
<![CDATA[]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
コード スニペットを作成する
Visual Studio で新しい XML ファイルを作成し、上に示したテンプレートを追加します。
Title 要素に、スニペットのタイトルを指定します。 タイトル Square Root を使用します。
Code 要素の Language 属性に、スニペットの言語を指定します。 C# の場合は CSharp を、Visual Basic の場合は VB を、C++ の場合は CPP を使用します。
ヒント
使用できる言語値をすべて確認するには、「コード スニペット スキーマ リファレンス」ページのコード要素の属性に関するセクションを参照してください。
Code 要素内の CDATA セクションにスニペット コードを追加します。
C# の場合 :
<Code Language="CSharp"> <![CDATA[double root = Math.Sqrt(16);]]> </Code>
あるいは、Visual Basic の場合:
<Code Language="VB"> <![CDATA[Dim root = Math.Sqrt(16)]]> </Code>
注意
コード スニペットの CDATA セクション内のコード行をインデントまたは書式設定する方法を指定することはできません。 挿入時に、言語サービスによって挿入されるコードの書式が自動的に設定されます。
スニペットを SquareRoot.snippet として保存します (任意の場所に保存できます)。
コード スニペットを挿入する
ご利用の Visual Studio インストールには、コード スニペット マネージャーを使用して、スニペットをインポートすることができます。 [ツール]>[コード スニペット マネージャー] の順に選択して開きます。
[インポート] ボタンをクリックします。
前の手順でコード スニペットを保存した場所に移動し、コード スニペットを選択して、 [開く] をクリックします。
[コード スニペットのインポート] ダイアログが開き、右ウィンドウの選択肢からスニペットを追加するように求められます。 選択肢の 1 つに [マイ コード スニペット] があります。 これを選択し、 [完了] 、 [OK] の順にクリックします。
スニペットは、コード言語に応じて、次のいずれかの場所にコピーされます。
%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets
C# または Visual Basic プロジェクトを開いて、そのスニペットをテストします。 エディターでコード ファイルを開いた状態にして、右クリック メニューの [スニペット]>[スニペットの挿入] の順に選択し、次に [マイ コード スニペット] を選択します。 Square Root という名前のスニペットが表示されるはずです。 これをダブルクリックします。
スニペット コードがコード ファイルに挿入されます。
Description フィールドと Shortcut フィールド
Description フィールドは、コード スニペット マネージャーに表示された際に、コード スニペットに関する詳しい情報を提供します。 ショートカットとは、スニペットを挿入するためにユーザーが入力できるタグです。 追加したスニペットを編集するために、%USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\[Visual C# or Visual Basic]\My Code Snippet\SquareRoot.snippet ファイルを開きます。
ヒント
編集するファイルは、Visual Studio によってディレクトリに配置されているので、そのファイルを Visual Studio に再インポートする必要はありません。
Author 要素と Description 要素を Header 要素に追加し、情報を入力します。
Header 要素は次のようになります。
<Header> <Title>Square Root</Title> <Author>Myself</Author> <Description>Calculates the square root of 16.</Description> </Header>
コード スニペット マネージャーを開き、コード スニペットを開きます。 右ペインで、Description フィールドと Author フィールドが指定されていることに注目してください。
ショートカットを追加するには、次のように Header 要素内に Shortcut 要素を追加します。
<Header> <Title>Square Root</Title> <Author>Myself</Author> <Description>Calculates the square root of 16.</Description> <Shortcut>sqrt</Shortcut> </Header>
スニペット ファイルを再度保存します。
ショートカットをテストするには、以前に使用したプロジェクトを開いて、エディターに「sqrt 」と入力し、Tab キーを押します (Visual Basic の場合は 1 回、C# の場合は 2 回)。
スニペット コードが挿入されます。
置換パラメーター
コード スニペットの一部をユーザーによって置き換えられるようにすることができます。 たとえば、ユーザーが変数名をユーザーの現在のプロジェクトに含まれる名前に置き換えられるようにしたいとします。 使用できる置換には、リテラル置換とオブジェクト置換の 2 種類があります。 Literal 要素を使用すれば、スニペット内に完全に含まれているがコードに挿入された後にカスタマイズされる可能性が高いコード (文字列や数値など) に対する置換が識別されます。 Object 要素を使用すると、コード スニペットで必須とされているがスニペット自体の外側で定義される可能性が高い項目 (オブジェクト インスタンスやコントロールなど) が識別されます。
ユーザーが平方根を計算する数値を簡単に置き換えることができるようにするには、SquareRoot.snippet ファイルの Snippet 要素を次のように変更します。
<Snippet> <Code Language="CSharp"> <![CDATA[double root = Math.Sqrt($Number$);]]> </Code> <Declarations> <Literal> <ID>Number</ID> <ToolTip>Choose the number you want the square root of.</ToolTip> <Default>16</Default> </Literal> </Declarations> </Snippet>
リテラル置換に ID (
Number
) が指定されていることに注目してください。 その ID は、$
文字を使用して囲むことで、コード スニペット内から参照されます。<![CDATA[double root = Math.Sqrt($Number$);]]>
スニペット ファイルを保存します。
プロジェクトを開き、スニペットを挿入します。
コード スニペットが挿入され、編集可能なリテラルが置換対象として強調表示されます。 置換パラメーターにカーソルを合わせると、値のヒントが表示されます。
ヒント
スニペット内に置換可能なパラメーターが複数存在する場合は、Tab キーを押すと、次に移動し、値が変化します。
名前空間をインポートする
コード スニペットを使用すれば、Imports 要素を含めることで、using
ディレクティブ (C#) または Imports
ステートメント (Visual Basic) を追加できます。 .NET Framework プロジェクトの場合は、References 要素を使用してプロジェクトへの参照を追加することもできます。
次の XML で示すコード スニペットでは、System.IO 名前空間内に File.Exists
メソッドが使用され、その結果として、System.IO 名前空間をインポートする Imports 要素が定義されています。
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>File Exists</Title>
<Shortcut>exists</Shortcut>
</Header>
<Snippet>
<Code Language="CSharp">
<![CDATA[var exists = File.Exists("C:\\Temp\\Notes.txt");]]>
</Code>
<Imports>
<Import>
<Namespace>System.IO</Namespace>
</Import>
</Imports>
</Snippet>
</CodeSnippet>
</CodeSnippets>