yotiky Tech Blog

とあるエンジニアの備忘録

疲れている人のためのコードスニペット in HoloLens

10年前の @zecl さんより(勝手に)バトンを受け取ってコードスニペットを作りました(これはひどい)。 元ネタはこちら

さて、HoloLensの実装してると #if UNITY_UWP が頻出するケースが稀によくあります。
手打ちもいいですがめんどくさいのでスニペット作って追加しちゃいましょう。
作業は簡単で、xmlファイルを「.snippet」の拡張子で保存し、Visual Studio からインポートしするだけです。
こんな感じで使えるようになります。 f:id:yotiky:20180523035639g:plain

目次

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

下記のようなXMLを記述し、適当な名前つけて保存します。サンプルは「ifuwpsymbol.snippet」。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>IfUnityUwpSymbole</Title>
            <Shortcut>ifuwp</Shortcut>
            <Description>UNITY_UWP シンボルで #if ステートメントを作成する</Description>
            <Author>yotiky</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Code Language="csharp"><![CDATA[#if UNITY_UWP
$selected$
#endif$end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

簡単にポイントだけ紹介します。
Header 要素の下にある Title 要素はインテリセンスで表示される名前です。
Shortcut 要素に指定した文字は、入力し始めると即座にインテリセンスで候補として表示されます。
SnippetTypes 要素は、Visual Studioスニペットをどのように挿入するかを指定します。
SurroundsWith は選択しているコードを囲むように配置します。これを指定しなかった場合、コードを選択して実行するとスニペットで上書きされます。
Expansion はスニペット挿入後のカーソル位置を指定できるようになります。

続いて Snippet 要素の中ですが、CDATA セクションで実際に挿入するコードを定義します。
ここに$selected$$end$で、それぞれ「選択したコードの配置」と「挿入後のカーソル位置」を指定します。
ざっとリファレンス見た限り、このような$で囲まれた予約語はこの2つしかないようです。
挿入するコード自体は説明の必要がないほど簡単なものですね。

より詳しく知りたい方は以下のリンクを参照すると良いでしょう。

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

Visual Studioで、[ツール]->[コードスニペットマネージャー]を開くか、[Ctrl+K, Ctrl+B]でも開きます。
f:id:yotiky:20180523032447p:plain

言語は C# を選択し、[インポート]をクリック、
f:id:yotiky:20180523032450p:plain

先程作成したsnippetファイルを選択し、コードスニペットを追加する場所を選んで完了。
f:id:yotiky:20180523032454p:plain

一度追加したスニペットは再度同じファイル名でインポートすれば上書きされます。
f:id:yotiky:20180523032458p:plain

まとめ

Let's Enjoy Programming! f:id:yotiky:20180523035555g:plain