Visual Studioのコードスニペットを自作していたら、表題の件にハマったのでメモがてら共有。
上記の記事で紹介されている Visual Studio Snippet Generatorで、スニペットを作ったのだが、Shortcutにハイフン(-)を入れると、コードスニペットが正しく機能しなくなった。
<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>commentblock-test</Title> <Shortcut>commentblock-test</Shortcut> <Description>create basic style comment block</Description> <Author>ai</Author> </Header> <Snippet> <Declarations> <Literal Editable="false"></Literal> </Declarations> <Code Language="cpp"><![CDATA[// ---------------------------------------------------------------- // // $end$ // ---------------------------------------------------------------- //]]></Code> </Snippet> </CodeSnippet> </CodeSnippets>
このXMLをVisual Studioにインポートして commentblock-test
を入力してTabキーを押すと、正しく動かない。
色々試した結果、Shortcutからハイフンを取り除くと、正しく動作するようになった。
↓改良後のXML
<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>commentblockTest</Title> <Shortcut>commentblockTest</Shortcut> <Description>create basic style comment block</Description> <Author>ai</Author> </Header> <Snippet> <Declarations> <Literal Editable="false"></Literal> </Declarations> <Code Language="cpp"><![CDATA[// ---------------------------------------------------------------- // // $end$ // ---------------------------------------------------------------- //]]></Code> </Snippet> </CodeSnippet> </CodeSnippets>
ちなみに
Visual Studio Snippet Generatorは、デフォルトでC#用のスニペットファイルを出力する。C++などでそのスニペットを使用したいときは、 <Code Language>
をcppなどに変更する必要がある。