興味の源泉

自分が興味を起こせるようなネタを雑多に書き綴るブログ

独自のコードスニペットを追加する

コードスニペット便利ですね。
でも自分の好きなものを追加しないと真価を発揮できません。
ということで、独自のコードスニペットを追加する方法を見ていきます。

新しいファイルを任意の場所に作ります。
ファイルの拡張子は .snippet にします。

VisualStudio2017のチュートリアルにのっとり、下記のように記述します。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>Hello World C#</Title>
            <Description>HelloWorld文字列</Description>
            <Shortcut>hello</Shortcut>
        </Header>
        <Snippet>
            <Code Language="CSharp">
                <![CDATA[string str = "Hello, World!";]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

各要素の説明は以下です。

Title コードスニペットの表示名
Description コードスニペットの説明
Shortcut スニペットの挿入に使用するショートカットテキストを指定

CDATAの後ろの[]の中に表示したい文字列を入れます。


スニペットを追加するにはコードスニペットマネージャーを開いてインポートします。
[ツール] > [コード スニペット マネージャー]

f:id:nanami_yamato:20190211140133p:plain


二度目以降は同じファイルあるよと注意ダイアログが出るので上書きにします。

f:id:nanami_yamato:20190211141928p:plain


これで「hello」と打ちTab2回押すと「string str = "Hello, World!";」とコードが入力されます。

f:id:nanami_yamato:20190211141303j:plain


1ファイルに2つ以上入れたい場合にはCodeSnippet要素をまるっとコピーして必要な項目を書き換えます。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        省略
    </CodeSnippet>
    <CodeSnippet Format="1.0.0">
      <Header>
        <Title>一行summary</Title>
        <Description>一行にsummaryを書く</Description>
        <Shortcut>sm</Shortcut>
      </Header>
      <Snippet>
        <Code Language="CSharp">
          <![CDATA[/// <summary></summary>]]>
        </Code>
      </Snippet>
    </CodeSnippet>
</CodeSnippets>

追加した文字列は一行のsummaryを表示したいときに使うスニペットです。
スラッシュ3回押せば同じようなものは出せるのですが、変数名に3行も使いたくないので、「sm」Tab2回で打てるようにしてます。
コード規約レベルのものは登録しておくとかなり速く書けます。

何度も入力していて面倒だなと思った時がスニペット化するタイミングです。
スニペットに限らず楽に簡単にコードを作るのを考え続けるのは大事なことですね。

環境
VisualStudio Community 2017
(2019/02/11現在)

参考
チュートリアル: コード スニペットを作成する - Visual Studio | Microsoft Docs