コード スニペット スキーマ リファレンス

コード スニペットは、事前に認証されたコードであり、アプリケーションに挿入する準備ができています。 コード スニペットを使用して生産性と信頼性を向上させ、繰り返しコードの入力やサンプルの検索にかかる時間を短縮できます。

この記事では、Visual Studio IntelliSense コード スニペット XML スキーマへの参照を提供します。 スキーマを使用して独自のコード スニペットを作成し、Visual Studio に既に含まれているコード スニペットに追加できます。

Assembly 要素

コード スニペットによって参照されるアセンプリの名前を指定します。

Assembly 要素のテキスト値は、アセンブリの表示名 (System.dll など) で指定することも、厳密な名前 (System,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa323c18d4fb1 など) で指定することもできます。

<Assembly>
    AssemblyName
</Assembly>
親要素 説明
Reference 要素 コード スニペットで参照する必要のあるアセンブリについての情報が格納されます。

テキスト値が必要です。 このテキストで、コード スニペットが参照するアセンブリを指定します。

Author 要素

スニペット作成者の名前を指定します。 コード スニペット マネージャーには、コード スニペットの Author 要素に格納された名前が表示されます。

<Author>
   Code Snippet Author
</Author>
親要素 説明
Header 要素 コード スニペットに関する全般的な情報が格納されます。

テキスト値が必要です。 このテキストでコード スニペットの作成者を指定します。

コード要素

短いコード ブロックのコンテナーを提供します。

キーワード

Code 要素のテキストでは、$end$ および $selected$ という 2 つの予約語を使用できます。 $end$ は、コード スニペットの挿入後のカーソル位置を指定します。 $selected$ は、スニペットが呼び出されたときにスニペットに挿入する選択したドキュメント テキストを表します。 たとえば、次のコードを含むスニペットがあるとします。

$selected$ is a great color.

ユーザーがスニペットを呼び出すときに単語 Blue が選択されている場合、結果は次のようになります。

Blue is a great color.

$end$$selected$ は、どちらもコード スニペット内で複数回使用することはできません。 複数回使用した場合、2 つ目のインスタンスだけが認識されます。 次のコードを含むスニペットがあるとします。

$selected$ is a great color. I love $selected$.

単語 Blue が選択されている場合、結果は次のようになります。

 is a great color. I love Blue.

最初のスペースは、次の間$selected$isにスペースがあるために表示されます。

その他の $ キーワードはすべて、<Literal> タグおよび <Object> タグで動的に定義されます。

次のコードは、要素の構造を Code 示しています。

<Code Language="Language"
    Kind="method body/method decl/type decl/page/file/any"
    Delimiter="Delimiter">
    Code to insert
</Code>

テキスト値が必要です。 このテキストで、コード スニペットをコード ファイルに挿入した場合に使用できるコードを、リテラルおよびオブジェクトと共に指定します。

属性

この要素には、次の 3 つの属性を Code 使用できます。

  • 言語コード スニペットの言語を指定する必須 の属性。 値は、次のいずれかの値である必要があります。

    Value 説明
    VB Visual Basic コード スニペット。
    CSharp C# コード スニペット。
    CPP C++ コード スニペット。
    XAML XAML コード スニペット。
    XML XML コード スニペット。
    JavaScript JavaScript コード スニペット。
    TypeScript TypeScript コード スニペット。
    SQL SQL コード スニペット。
    HTML HTML コード スニペット。
  • Kind。 スニペットに含まれるコードの種類を指定する省略可能な属性。 値は、次のいずれかの値である必要があります。

    Value 説明
    method body スニペットはメソッド本体であるため、メソッド宣言内に挿入する必要があります。
    method decl スニペットはメソッドであるため、クラスまたはモジュール内に挿入する必要があります。
    type decl スニペットは型であるため、クラス、モジュール、または名前空間内に挿入する必要があります。
    file スニペットは完全なコード ファイルであり、コード ファイルまたは名前空間内に単独で挿入できます。
    any スニペットは任意の場所に挿入できます。 このタグは、コメントなど、コンテキストに依存しないコード スニペットに使用します。
  • 区切り記号。 コード内のリテラルとオブジェクトを記述するために使用する区切り記号を指定する省略可能な属性。 既定では、区切り記号は $ です。

親要素

親要素 説明
Snippet 要素 コード スニペットの参照、インポート、宣言、およびコードが格納されます。

CodeSnippet 要素

Visual Studio Code ファイルに挿入できる見出しと複数のコード スニペットを指定できます。

<CodeSnippet Format="x.x.x">
    <Header>... </Header>
    <Snippet>... </Snippet>
</CodeSnippet>
属性 説明
形式 必須 の属性。 コード スニペットのスキーマ バージョンを指定します。 Format 属性は、それぞれのxバージョン番号のx.x.x数値を表す構文の文字列である必要があります。 Visual Studio では、認識できない Format 属性を持つコード スニペットは無視されます。
子要素 説明
Header 要素 必須 の要素。 コード スニペットに関する全般的な情報が格納されます。 コード スニペットで使用できる Header 要素は 1 つだけです。
Snippet 要素 必須 の要素。 Visual Studio によって挿入されるコードが含まれています。 コード スニペットで使用できる Snippet 要素は 1 つだけです。
親要素 説明
CodeSnippets 要素 コード スニペットの XML スキーマのルート要素です。

CodeSnippets 要素

複数の CodeSnippet 要素をグループ化します。 CodeSnippets 要素は、コード スニペットの XML スキーマにおけるルート要素です。

<CodeSnippets>
    <CodeSnippet>... </CodeSnippet>
</CodeSnippets>
子要素 説明
CodeSnippet 要素 省略可能な要素です。 すべてのコード スニペット データを下位に持つ親要素です。 CodeSnippet 要素に 0 個以上の CodeSnippets 要素があります。

Declarations 要素

編集できるコード スニペットの部分を構成するリテラルとオブジェクトを指定します。

<Declarations>
    <Literal>... </Literal>
    <Object>... </Object>
</Declarations>
子要素 説明
Literal 要素 省略可能な要素です。 編集できるコード スニペットのリテラルを定義します。 Literal 要素に 0 個以上の Declarations 要素があります。
Object 要素 省略可能な要素です。 編集できるコード スニペットのオブジェクトを定義します。 Object 要素に 0 個以上の Declarations 要素があります。
親要素 説明
Snippet 要素 コード スニペットの参照、インポート、宣言、およびコードが格納されます。

Default 要素

コード スニペットのリテラルまたはオブジェクトの既定値を指定します。

<Default>
    Default value
</Default>
親要素 説明
Literal 要素 編集が可能なコード スニペットのリテラル フィールドを定義します。
Object 要素 編集が可能なコード スニペットのオブジェクト フィールドを定義します。

テキスト値が必要です。 このテキストは、編集できるコード スニペットのフィールドに入れるリテラルまたはオブジェクトの既定値を指定します。

Description 要素

コード スニペットの内容に関する説明情報を指定します。

<Description>
    Code Snippet Description
</Description>
親要素 説明
Header 要素 コード スニペットに関する全般的な情報が格納されます。

テキスト値が必要です。 このテキストで、コード スニペットについて説明します。

Function 要素

Visual Studio でリテラルまたはオブジェクトがフォーカスを取得するときに実行される関数を指定します。

Note

一部の言語は Function 要素をサポートしていません。 どの機能を使用できるかについては、言語固有のドキュメントを参照してください。

<Function>
    FunctionName
</Function>
親要素 説明
Literal 要素 編集が可能なコード スニペットのリテラル フィールドを定義します。
Object 要素 編集が可能なコード スニペットのオブジェクト フィールドを定義します。

テキスト値が必要です。 このテキストで、Visual Studio でリテラルまたはオブジェクト フィールドがフォーカスを取得するときに実行される関数を指定します。

Header 要素

コード スニペットに関する全般的な情報を指定します。

<Header>
    <Title>... </Title>
    <Author>... </Author>
    <Description>... </Description>
    <HelpUrl>... </HelpUrl>
    <SnippetTypes>... </SnippetTypes>
    <Keywords>... </Keywords>
    <Shortcut>... </Shortcut>
</Header>
子要素 説明
Author 要素 省略可能な要素です。 コード スニペットを作成した個人または会社の名前です。 1 つの要素に 0 個または 1 つの Author 要素が存在する Header 場合があります。
Description 要素 省略可能な要素です。 コード スニペットの説明です。 1 つの要素に 0 個または 1 つの Description 要素が存在する Header 場合があります。
HelpUrl 要素 省略可能な要素です。 コード スニペットに関する詳細な情報が記載された URL です。 1 つの要素に 0 個または 1 つの HelpURL 要素が存在する Header 場合があります。
Keywords 要素 省略可能な要素です。 複数の Keyword 要素をグループ化します。 1 つの要素に 0 個または 1 つの Keywords 要素が存在する Header 場合があります。
Shortcut 要素 省略可能な要素です。 スニペットの挿入に使用するショートカット テキストを指定します。 1 つの要素に 0 個または 1 つの Shortcut 要素が存在する Header 場合があります。
SnippetTypes 要素 省略可能な要素です。 複数の SnippetType 要素をグループ化します。 1 つの要素に 0 個または 1 つの SnippetTypes 要素が存在する Header 場合があります。 SnippetTypes 要素が存在しない場合、コード スニペットは常に有効となります。
Title 要素 必須 の要素。 コード スニペットの表示名です。 Title 要素で使用できる Header 要素は 1 つだけです。
親要素 説明
CodeSnippet 要素 すべてのコード スニペット データを下位に持つ親要素です。

HelpUrl 要素

コード スニペットに関する詳細な情報の入手先 URL を指定します。

Note

Visual Studio では要素は HelpUrl 使用されません。 要素は IntelliSense コード スニペット XML スキーマの一部であり、要素を含むコード スニペットは検証されますが、要素の値は使用されません。

<HelpUrl>
    www.microsoft.com
</HelpUrl>
親要素 説明
Header 要素 コード スニペットに関する全般的な情報が格納されます。

テキスト値は省略可能です。 このテキストで、コード スニペットに関する詳細情報の入手先 URL を指定します。

ID 要素

Literal 要素または Object 要素の一意の識別子を指定します。 同じコード スニペットの 2 つのリテラルまたはオブジェクトがその ID 要素に同じテキスト値を持つことはできません。 リテラルとオブジェクトには、値endが ⾾ のID要素を含めることはできません。 $end$ という値は、コード スニペットの挿入後のカーソル位置をマーキングする目的で予約されています。

<ID>
    Unique Identifier
</ID>
親要素 説明
Literal 要素 編集が可能なコード スニペットのリテラル フィールドを定義します。
Object 要素 編集が可能なコード スニペットのオブジェクト フィールドを定義します。

テキスト値が必要です。 このテキストで、オブジェクトまたはリテラルの一意の識別子を指定します。

Import 要素

コード スニペットによって使用されるインポートされた名前空間を指定します。

<Import>
    <Namespace>... </Namespace>
</Import>
子要素 説明
名前空間要素 必須 の要素。 コード スニペットで使用される名前空間を指定します。 Namespace 要素で使用できる Import 要素は 1 つだけです。
親要素 説明
Imports 要素 Import 要素のグループ化要素です。

Imports 要素

複数の Import 要素をグループ化します。

<Imports>
    <Import>... </Import>
</Imports>
子要素 説明
Import 要素 省略可能な要素です。 コード スニペットでインポートする必要のある名前空間が格納されます。 Import 要素に 0 個以上の Imports 要素があります。
親要素 説明
Snippet 要素 コード スニペットの参照、インポート、宣言、およびコードが格納されます。

Keyword 要素

コード スニペットのカスタム キーワードを指定します。 コード スニペットのキーワードは Visual Studio によって使用され、検索や分類のためのカスタム キーワードを追加する手段をオンライン コンテンツ プロバイダーに提供します。

<Keyword>
    Code Snippet Keyword
</Keyword>
親要素 説明
Keywords 要素 複数の Keyword 要素をグループ化します。

テキスト値が必要です。 コード スニペットのキーワードを指定します。

Keywords 要素

複数の Keyword 要素をグループ化します。 コード スニペットのキーワードは Visual Studio によって使用され、検索や分類のためのカスタム キーワードを追加する手段をオンライン コンテンツ プロバイダーに提供します。

<Keywords>
    <Keyword>... </Keyword>
    <Keyword>... </Keyword>
</Keywords>
子要素 説明
Keyword 要素 省略可能な要素です。 コード スニペットの複数のキーワードが格納されます。 Keyword 要素に 0 個以上の Keywords 要素があります。
親要素 説明
Header 要素 コード スニペットに関する全般的な情報が格納されます。

Literal 要素

編集できるコード スニペットのリテラルを定義します。 要素は Literal 、スニペットが挿入された後にカスタマイズできるスニペット内に完全に含まれるコードの一部の置換を識別します。 たとえば、リテラル文字列、数値、および変数名はリテラルとして宣言されなければなりません。

リテラルとオブジェクトには、値が ID 〗または end〘 のselected要素を含めることはできません。 この値 $selected$ は、スニペットが呼び出されたときにスニペットに挿入される選択されたドキュメント テキストを表します。 $end$ は、コード スニペットの挿入後のカーソル位置を指定します。

<Literal Editable="true/false">
   <ID>... </ID>
   <ToolTip>... </ToolTip>
   <Default>... </Default>
   <Function>... </Function>
</Literal>
属性 説明
編集可能 省略可能な Boolean 属性です。 コード スニペットが挿入された後にリテラルを編集可能にするかどうかを指定します。 この属性の既定値は true です。
子要素 説明
Default 要素 必須 の要素。 コード スニペットを挿入した場合に、既定で使用されるリテラルの値を指定します。 Default 要素で使用できる Literal 要素は 1 つだけです。
Function 要素 省略可能な要素です。 リテラルが Visual Studio でフォーカスを受け取ったときに実行される関数を指定します。 1 つの要素に 0 個または 1 つの Function 要素が存在する Literal 場合があります。
ID 要素 必須 の要素。 リテラルの一意の識別子を指定します。 ID 要素で使用できる Literal 要素は 1 つだけです。
ToolTip 要素 省略可能な要素です。 リテラルに予想される値と使用法に関する説明文です。 1 つの要素に 0 個または 1 つの ToolTip 要素が存在する Literal 場合があります。
親要素 説明
Declarations 要素 編集が可能なコード スニペットのリテラルおよびオブジェクトを保持します。

Namespace 要素

コード スニペットをコンパイルおよび実行するためにインポートする必要のある名前空間を指定します。 Namespace 要素で指定された名前空間が存在しない場合、コードの先頭の using ディレクティブまたは Imports ステートメントに自動的に追加されます。

<Namespace>
    Namespace
</Namespace>
親要素 説明
Import 要素 指定された名前空間をインポートします。

テキスト値が必要です。 このテキストで、コード スニペットを使用するためにインポートする必要のある名前空間を指定します。

Object 要素

編集できるコード スニペットのオブジェクトを定義します。 要素は Object 、スニペット自体の外部で定義されているコード スニペットで必要な項目を識別します。 たとえば、Windows フォーム コントロール、ASP.NET コントロール、オブジェクトのインスタンス、型のインスタンスなどをオブジェクトとして宣言します。 オブジェクト宣言では、要素で行われる型を指定する Type 必要があります。

<Object Editable="true/false">
    <ID>... </ID>
    <Type>... </Type>
    <ToolTip>... </ToolTip>
    <Default>... </Default>
    <Function>... </Function>
</Object>
属性 説明
編集可能 省略可能な Boolean 属性です。 コード スニペットが挿入された後にリテラルを編集可能にするかどうかを指定します。 この属性の既定値は true です。
子要素 説明
Default 要素 必須 の要素。 コード スニペットを挿入した場合に、既定で使用されるリテラルの値を指定します。 Default 要素で使用できる Literal 要素は 1 つだけです。
Function 要素 省略可能な要素です。 リテラルが Visual Studio でフォーカスを受け取ったときに実行される関数を指定します。 1 つの要素に 0 個または 1 つの Function 要素が存在する Literal 場合があります。
ID 要素 必須 の要素。 リテラルの一意の識別子を指定します。 ID 要素で使用できる Literal 要素は 1 つだけです。
ToolTip 要素 省略可能な要素です。 リテラルに予想される値と使用法に関する説明文です。 1 つの要素に 0 個または 1 つの ToolTip 要素が存在する Literal 場合があります。
Type 要素 必須 の要素。 オブジェクトの種類を指定します。 Type 要素で使用できる Object 要素は 1 つだけです。
親要素 説明
Declarations 要素 編集が可能なコード スニペットのリテラルおよびオブジェクトを保持します。

Reference 要素

コード スニペットで参照する必要のあるアセンブリについての情報を指定します。

<Reference>
    <Assembly>... </Assembly>
    <Url>... </Url>
</Reference>
子要素 説明
Assembly 要素 必須 の要素。 コード スニペットによって参照されるアセンプリの名前が格納されます。 Assembly 要素で使用できる Reference 要素は 1 つだけです。
Url 要素 省略可能な要素です。 参照アセンブリに関する詳細な情報の入手先 URL が格納されます。 1 つの要素に 0 個または 1 つの Url 要素が存在する Reference 場合があります。
親要素 説明
References 要素 Reference 要素のグループ化要素です。

References 要素

複数の Reference 要素をグループ化します。

<References>
    <Reference>... </Reference>
</References>
子要素 説明
Reference 要素 省略可能な要素です。 コード スニペットで参照する必要のあるアセンブリについての情報が格納されます。 Reference 要素に 0 個以上の References 要素があります。
親要素 説明
Snippet 要素 コード スニペットの参照、インポート、宣言、およびコードが格納されます。

Shortcut 要素

スニペットの挿入に使用するショートカット テキストを指定します。 要素のテキスト値には Shortcut 、英数字とアンダースコア (_) のみを含めることができます。

Note

アンダースコア (_) 文字は、C++ スニペットのショートカットではサポートされていません。

<Shortcut>
    Shortcut Text
</Shortcut>
親要素 説明
Header 要素 コード スニペットに関する全般的な情報が格納されます。

テキスト値は省略可能です。 このテキストは、コード スニペットを挿入するためのショートカットとして使用されます。

Snippet 要素

参照、インポート、宣言およびコード スニペット用のコードを指定します。

<Snippet>
    <References>... </References>
    <Imports>... </Imports>
    <Declarations>... </Declarations>
    <Code>... </Code>
</Snippet>
子要素 説明
Code 要素 必須 の要素。 ドキュメント ファイルに挿入するコードを指定します。 Code 要素で使用できる Snippet 要素は 1 つだけです。
Declarations 要素 省略可能な要素です。 編集できるコード スニペットの部分を構成するリテラルとオブジェクトを指定します。 1 つの要素に 0 個または 1 つの Declarations 要素が存在する Snippet 場合があります。
Imports 要素 省略可能な要素です。 複数の Import 要素をグループ化します。 1 つの要素に 0 個または 1 つの Imports 要素が存在する Snippet 場合があります。
References 要素 省略可能な要素です。 複数の Reference 要素をグループ化します。 1 つの要素に 0 個または 1 つの References 要素が存在する Snippet 場合があります。
親要素 説明
CodeSnippet 要素 Visual Studio Code ファイルに挿入できる見出しと複数のコード スニペットを指定できます。

SnippetType 要素

Visual Studio でコード スニペットを追加する方法を指定します。

<SnippetType>
    SurroundsWith/Expansion
</SnippetType>
親要素 説明
SnippetTypes 要素 複数の SnippetType 要素をグループ化します。

値は、次のいずれかの値である必要があります。

Value 説明
Expansion コード スニペットをカーソルに挿入できるようにします。
Refactoring C# リファクタリング中にコード スニペットを使用することを指定します。 Refactoring カスタム コード スニペットでは使用できません。
SurroundsWith 選択したコードの周囲にコード スニペットを配置できるようにします。

SnippetTypes 要素

複数の SnippetType 要素をグループ化します。 要素が SnippetTypes 存在しない場合は、コード スニペットをカーソルに挿入するか、選択したコードの周囲に配置できます。

<SnippetTypes>
    <SnippetType>... </SnippetType>
    <SnippetType>... </SnippetType>
</SnippetTypes>
子要素 説明
SnippetType 要素 省略可能な要素です。 Visual Studio がコード スニペットをコードに挿入するときの動作を指定します。 SnippetType 要素に 0 個以上の SnippetTypes 要素があります。
親要素 説明
Header 要素 コード スニペットに関する全般的な情報を指定します。

Title 要素

コード スニペットのタイトルを指定します。 コード スニペットの要素にTitle格納されているタイトルは、コード スニペット ピッカーに表示され、コード スニペット マネージャーコード スニペットの名前として表示されます。

<Title>
    Code Snippet Title
</Title>
親要素 説明
Header 要素 コード スニペットに関する全般的な情報を指定します。

テキスト値が必要です。 このテキストでコード スニペットのタイトルを指定します。

ToolTip 要素

コード スニペット内のリテラルまたはオブジェクトの予期される値と使用法について説明します。 Visual Studio では、コード スニペットをプロジェクトに挿入すると、この情報がツールヒントに表示されます。 ツールヒントは、コード スニペットが挿入された後、リテラルまたはオブジェクトの上にマウス ポインターを置いたときにも表示されます。

<ToolTip>
    ToolTip description
</ToolTip>
親要素 説明
Literal 要素 編集が可能なコード スニペットのリテラル フィールドを定義します。
Object 要素 編集が可能なコード スニペットのオブジェクト フィールドを定義します。

テキスト値が必要です。 このテキストは、コード スニペットのオブジェクトまたはリテラルに関連付けられる ToolTip の説明を指定します。

型の要素

オブジェクトの種類を指定します。 この要素は Object 、コード スニペットが必要とする項目を識別しますが、スニペット自体の外部で定義されている可能性があります。 たとえば、Windows フォーム コントロール、ASP.NET コントロール、オブジェクトのインスタンス、型のインスタンスなどをオブジェクトとして宣言します。 オブジェクト宣言では、要素で行われる型を指定する Type 必要があります。

<Type>
    Type
</Type>
親要素 説明
Object 要素 編集が可能なコード スニペットのオブジェクト フィールドを定義します。

テキスト値が必要です。 このテキストでオブジェクトの型を指定します。 たとえば次のような点です。

<Type>System.Data.SqlClient.SqlConnection</Type>

Url 要素

参照アセンブリの詳細情報を提供する URL を指定します。

Note

要素は Url 、Visual Basic プロジェクトでのみサポートされます。

<Url>
    www.microsoft.com
</Url>
親要素 説明
Reference 要素 コード スニペットで参照する必要のあるアセンブリを指定します。

テキスト値が必要です。 このテキストで、参照アセンブリに関する詳細な情報の入手先 URL を指定します。 この URL は、参照をプロジェクトに追加できない場合に表示されます。