社内の開発環境をVS2010からVS2013に乗り替えようかという話になりまして、そこで困ったのがマクロです。
VisualStudioのマクロ機能はVS2012から削除されているんですね。
数は多くないのですが、社内コーディングルールに合わせた入力補助機能をマクロで実現していたので使えなくなると少しばかり不便です。
そこで拡張機能を作成することにしました。
Visual Studio SDK をインストールする
拡張機能を作成するにはVSで新しいプロジェクトの作成で「その他のプロジェクトの種類」→「拡張機能」から「Visual Studio Package」を指定しますが、初期状態ではこのテンプレートが表示されません。
MicrosoftからVisual Studio SDKをダウンロードしてインストールする必要があります。
http://www.microsoft.com/en-us/download/details.aspx?id=40758
インストールが完了するとプロジェクトテンプレートにこんな感じで追加されます。
ウィザードにしたがって拡張機能プロジェクトを作成する
新しいプロジェクトとして「Visual Studio Package」を選択すると、ウィザードが開始します。
開発言語を選択します。初期状態ではC++が選択されていますが今回はC#を選択。
機能の選択。「Menu Command」にチェックすると、メニュー「ツール」に項目が追加されます。「Tool Window」にチェックをつけるとメニュー「表示」→「その他のウィンドウ」に項目が追加されます。「Custom Editor」にチェックをつけると、ファイル新規作成時の「インストール済」項目にオリジナルの項目が追加されます。「Custom Editor」については詳しく調べていないので使いどころが分かっていません。
ウィザードが終わると、こんな感じです。画像は「その他のウィンドウ」から表示されるツールウィンドウのデザイン画面です。XAML。
何も考えずにデバッグ実行。別のVSが立ち上がるので「ツール」メニューを確認するとウィザードの「Command Option」で指定した項目が追加されています。なぜかデフォルトのアイコンが「x1」なんですよね。
追加された項目をクリックするとメッセージボックスが表示されます。
今回のプロジェクトではVSPackage1Package.cs の MenuItemCallback() を変えればお好みのコマンドを実行できるわけですね。
こんな感じで開発にC#も使えるし、拡張機能の開発は意外と簡単。と思っていたのですが、ここからが…
以下次回。