次の方法で共有


チュートリアル: Visual Studio でコード スニペットを作成する

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

独自のコード スニペットを作成し、Visual Studio に既に含まれているコード スニペットに追加できます。 この記事では、いくつかの手順でコード スニペットを作成する方法について説明します。 XML ファイルを作成し、適切な要素を入力して、ファイルにコードを追加します。 必要に応じて、置換パラメーターとプロジェクト参照を使用できます。 次に、スニペットを Visual Studio のインストールにインポートします。

コード スニペットを作成する

  1. Visual Studio を開き、[スタート] 画面でコードなしで [続行] を選択します。

    [コードなしで続行] オプションが選択されている [スタート] ウィンドウのスクリーンショット。

  2. メニュー バーから [ファイル] >[新しいファイル] を選択するか、Ctrl+N キーを押します。

  3. [ 新しいファイル ] ダイアログ ボックスで、[ XML ファイル] を選択し、[ 開く] を選択します。

    [XML ファイル] オプションが選択されている [新しいファイル] ダイアログ ボックスのスクリーンショット。

  4. 次の基本的なスニペット テンプレートをコード エディターに貼り付けます。

    <?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>
    
  5. スニペットTitle要素にタイトルの平方根を入力します。

  6. Code要素のLanguage属性で、C# スニペットの場合は CSharp、Visual Basic の場合は VB を入力します。

    ヒント

    使用可能なすべての言語値を確認するには、「コード スニペットスキーマリファレンス」の「属性」を参照してください。

  7. Code要素内の CDATA セクションに次のスニペット コードを追加します。

    C# の場合:

        <![CDATA[double root = Math.Sqrt(16);]]>
    

    Visual Basic の場合:

        <![CDATA[Dim root = Math.Sqrt(16)]]>
    

    コード スニペットの CDATA セクションでは、コード行の書式設定方法やインデント方法を指定することはできません。 挿入時に、言語サービスは挿入されたコードを自動的に書式設定します。

  8. スニペットを SquareRoot.snippet として任意の場所に保存します。

コード スニペットをインポートする

  1. スニペットを Visual Studio のインストールにインポートするには、[ツール>コード スニペット マネージャー] を選択するか、Ctrl+KBキーを押します。

  2. コード スニペット マネージャーで、[インポート] ボタンを選択します。

  3. コード スニペットの場所に移動して選択し、[ 開く] を選択します。

  4. [ コード スニペットのインポート ] ダイアログ ボックスで、右側のウィンドウで [ マイ コード スニペット ] フォルダーを選択します。 終了 を選択し、そして OK を選択します。

    スニペットは、コード言語に応じて、次のいずれかの場所にコピーされます。

    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets
    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets
  5. C# または Visual Basic プロジェクトを開いてスニペットをテストします。 エディターでコード ファイルを開いた状態で、次のいずれかの操作を行います。

    • Visual Studio のメニュー バーで、 編集>IntelliSense>Insert スニペットを選択します。
    • 右クリックし、コンテキスト メニューから [ スニペット>スニペット の挿入] を選択します。
    • キーボードから Ctrl+KXキーを押します。
  6. マイ コード スニペットを開き、Square Root という名前のスニペットをダブルクリックします。 スニペット コードがコード ファイルに挿入されます。

説明とショートカット フィールド

[説明] フィールドには、コード スニペット マネージャーで表示されるコード スニペットに関 する詳細情報が表示されます。 ショートカットは、スニペットを挿入するために入力できるタグです。

  1. スニペットを編集するには、コード言語に応じて、次のいずれかの場所からスニペット ファイルを開きます。

    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet

    ヒント

    Visual Studio が配置したディレクトリでファイルを編集しているため、Visual Studio に再インポートする必要はありません。

  2. AuthorDescription、およびShortcut要素をHeader要素に追加し、入力します。

  3. Header要素が次の例のように見えるのを確認し、ファイルを保存します。

    <Header>
        <Title>Square Root</Title>
        <Author>Myself</Author>
        <Description>Calculates the square root of 16.</Description>
        <Shortcut>sqrt</Shortcut>
    </Header>
    
  4. Visual Studio Code スニペット マネージャー を開き、コード スニペットを選択します。 右側のウィンドウで、[ 説明]、[ 作成者]、および [ショートカット ] フィールドが設定されていることを確認します。

    コード スニペット マネージャーのコード スニペットの説明を示すスクリーンショット。

  5. ショートカットをテストするには、前に使用したプロジェクトを開き、エディターで sqrt と入力し、Visual Basic の 場合は Tab キーを 1 回、C# の場合は 2 回押します。 スニペット コードが挿入されます。

置換パラメーター

ユーザーがコード スニペットの一部を置き換える場合があります。 たとえば、ユーザーが変数名を現在のプロジェクトの変数名に置き換える場合があります。

リテラルとオブジェクトの 2 種類の置換を指定できます。

  • Literal 要素を使用して、コードに挿入された後にカスタマイズできるスニペット内に完全に含まれるコードの置換を識別します。 たとえば、文字列や数値などです。

  • Object 要素を使用して、コード スニペットに必要な項目を識別しますが、スニペットの外部で定義されている可能性があります。 たとえば、オブジェクト インスタンスやコントロールなどです。

SquareRoot.snippet ファイルのLiteral要素を使用すると、ユーザーが平方根を計算する数値を簡単に変更できます。

  1. SquareRoot.snippet ファイルで、Snippet要素を次のように変更します。

    <Snippet>
      <Code Language="CSharp">
        <![CDATA[double root = Math.Sqrt($Number$);]]>
      </Code>
      <Declarations>
        <Literal>
          <ID>Number</ID>
          <ToolTip>Enter the number you want the square root of.</ToolTip>
          <Default>16</Default>
        </Literal>
      </Declarations>
    </Snippet>
    

    リテラル置換で ID Numberが取得されていることに注意してください。 コード スニペットでその ID を参照するには、次のように $ 文字で囲みます。

    <![CDATA[double root = Math.Sqrt($Number$);]]>
    
  2. スニペット ファイルを保存します。

  3. プロジェクトを開き、スニペットを挿入します。

    コード スニペットが挿入され、編集可能なリテラルが置換のために強調表示されます。 置換パラメーターにカーソルを合わせると、値のヒントが表示されます。

    Visual Studio のコード スニペット置換パラメーターのヒントのスクリーンショット。

    ヒント

    スニペットに複数の置換可能なパラメーターがある場合は、 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>