こんにちは、こだかです。

このブログは、TechEdセッション終了後に書いています。
今回は人気のあるセッションの裏セッションにもかかわらず、多くの方に参加して頂いて本当に感謝しています。

そのセッションの出来ですが、前日ホテルの自分の部屋で行ったエアセッション(つまり練習ですね・・・)では、
10分オーバーだった事もあり、前半かなりのハイペースで話を行いました。
そして気がつくと、予定よりなぜか10分ほど速いペースになっています。(目前にカウントダウンされるタイマーが置いてあります)
何故??と半ばパニックになりつつも、逆にチャンスとばかり、予定になかったLINQやExtentionMethodなども話をしてしまいました。
なかなか練習通りには行かない物ですね。

さて今回のデモンストレーションは時間の都合もあり、すべてコードスニペットを事前に作成しておき、それをコーディングでは使用いたしました。
セッション終了後に質問がでましたので、参考までに、私が今回作成したスニペットの一部をご覧下さい。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Demo2_WordContent1</Title>
      <Shortcut>D2_W1_P</Shortcut>
    </Header>
    <Snippet>
      <Code Language="CSharp">
        <![CDATA[
            Globals.ThisDocument.categoriesBindingSource.MovePrevious();
         ]]>
      </Code>
    </Snippet>
  </CodeSnippet>
 
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>Demo2_WordContent2</Title>
      <Shortcut>D2_W2_N</Shortcut>
    </Header>
    <Snippet>
      <Code Language="CSharp">
      <![CDATA[
           Globals.ThisDocument.categoriesBindingSource.MoveNext();
        ]]>
      </Code>
    </Snippet>
  </CodeSnippet>
 
  <CodeSnippet Format="1.0.0">
      <Header>
        <Title>Demo2_WordContent3</Title>
        <Shortcut>D2_W3_doc</Shortcut>
      </Header>
      <Snippet>
        <Code Language="CSharp">
          <![CDATA[
            UserControl1 myControl = new UserControl1();
            this.ActionsPane.Controls.Add(myControl);
        ]]>
        </Code>
      </Snippet>
    </CodeSnippet>
</CodeSnippets>

これは、Wordコンテンツコントロールを作成したときに用いたスニペットです。
これをファイル名としてDemo2Snippets.snippetとしました。(拡張子以外は適当で構いません)
そして、適当なフォルダをコードスニペット置き場として、Visual Studio のスニペットマネージャーに登録します。
後は、Shortcutの一部をコードに記述すると、スニペットが追加されます。

XMLファイルの作成は面倒と感じる方にはツールもあるようです。
http://www.gotdotnet.com/codegallery/codegallery.aspx?id=b0813ae7-466a-43c2-b2ad-f87e4ee6bc39
(ちなみに私は特にツールは使わない人です。)

スニペットは以前からある機能ですが、なかなか通常使用できない事もあると思います。
良く使う構文や、私と同じくプレゼンテーション用の記述など、工夫次第で使用の幅が広がって行くタイプの機能です。
ぜひご使用頂ければと思います。 


こだかたろう