Visual Studioをあなた好みにしてみよう

 

というわけで Visual Studio Advent Calendar 2012の2日目担当です。何となく作ろうとしてたネタをせっかくだからAdvent Calendarのネタにしちゃおうと思ったら周りが怖い人ばっかりでどうしようでござる。

気を取り直して、2日目の内容は「Visual Studioを自分好みにしちゃいましょう」ということで、拡張機能のご紹介的な内容です。

さて、Visual StudioにはVisual Studioギャラリーという、とっても便利なサイトがあります。

このサイトはVisual Studioで利用できるいろいろな拡張機能をまとめてるサイトでして、欲しい拡張機能を探すことができるようになっています。

拡張機能の大半は無料ですが、中には有償のもありーの。提供側もMicrosoftよりほとんどコミュニティベースで作られてたり結構オープンな場となっています。※推薦形式じゃなくて、提供側自身でUploadしないと公開されない仕組みです。

※上記以外だと、CodePlexもその手のものは多いですね。(オープンソースソフトウェアのホスティングサイトなので、ギャラリーに公開されてる拡張機能のソースがあったりとかもありますが)

インストール直後の素の状態で使うというのも、無しではありませんが、せっかくお世話になる相棒なんだから、より便利に使いやすく、そして自分自身が楽にならないといけませんよね。というわけで幾つか便利そうなのを紹介してみます。

※とか偉そうに言っていますが、おいらも最近やっとVSさんと付き合いだせるようになったので、是非こんないいのがあるよ!とかあればフィードバック頂きたいというかそういうのはシェアしましょう!新参者にご教授頂けると嬉しいです!

ではさっそく。

※一応対象はVisual Studio 2012で挙げていますが、以前のバージョンのも探せばありますので。

1) VSCommands for Visual Studio 2012

この手のツールとしては有名なVSCommandsです。いろいろ多機能でVisual Studioの設定の同期やCtrl+Clickで定義元へジャンプ、出力ウィンドウの色付け、ソリューションのZipアーカイブなどなど便利な機能がまとまってます。最近Visual Studio 2012に対応したみたいですね。

2) Visual Studio 2012 Color Theme Editor

Visual Studio 2012だと、ダークとライトの2系統のテーマからIDEの色を選べますがどっちもやだーとか、Visual Studio 2010風でないと!という人向け?のテーマエディタです。こっちの動画みると一目瞭然ですかね。

3) ReSharper

有料ですが、おいらより賢いC#の先生ですのでいつも指導してもらっています。usingの整理とかアセンブリ追加とか、コードの修正とかよりベターなコードへの変換とかインテリセンス拡張とか偉く多機能です。

とりあえず波線が出たら指導されてると思ってAlt+Enterしながら頑張る感じです。

まぁその分、重いんですけどね。

4) xUnit.net runner for Visual Studio 2012

Visual Studio 2012標準でテストランナーついてますが、xUnit使いたい場合はこちらが便利。

5) Git Source Control Provider

Visual StudioといえばTFSだよ!TFS!でもGit連携したいんだよね、という方はこちら。

6) Web Essentials 2012

Web開発者向けの拡張機能です。CSSやJavaScript書くのを手助けしてくれたり、ブラウザ互換を確認したりできます。

最近はやりのTypeScriptもサポートですよ!

7) PHP Tools for Visual Studio

Visual Studioは何もC#/VB.NET/F#だけのIDEじゃないんですよ奥さん!ということでこの機能拡張いれるとPHPもガシガシコーディングできるはずです! XDebug extensionを使ってデバッグもできちゃうぜ!

8) Resource Translator

多言語対応って面倒ですが、これを使うとリソースファイルを右クリック一発でMicrosoft Translator使って機械翻訳できたりします。

さすがにそのままOK!というわけにはいかないと思いますが、ベースができるのでコピペだったり煩わしい作業が少しでも減るのはうれしいですね!

ということで、ギャラリーをふらふら見て一般的そうなのを8本ほど紹介しましたが、ここで前ふり終わり。

Visual Studioを使うということは基本的に開発者なわけで、欲しい機能が無いなら作ればいいじゃない、もしくは自分の道具は自分で研ぎ澄まそう!ということで拡張機能を作っちゃいましょう。

ということで本日最後の紹介は Microsoft Visual Studio 2012 SDK です。

Microsoft Visual Studio 2012 SDKを使うと簡単にVisual Studioの拡張機能を開発することができます!

これは使わない手はないですね。実際にチャレンジしてみましょう!

プロジェクトの作成

Microsoft Visual Studio 2012 SDKをインストールすると、プロジェクトテンプレートの機能拡張にいろいろ増えます。

今回は、「Editor Viewport Adornment」を選択します。このプロジェクトテンプレートはVisual Studioのエディタ部分を装飾するのに必要な基本が入ってるテンプレートです。

他にも空のVSIXなどもあるのでご自由に。

まぁ細かい内容はMSDNなどを参考にしてもらって、ですね。え?嫌な予感がする?気にしちゃだめですよ旦那。

機能を実装する

拡張機能の作りとしては、マニフェストを用意して、拡張対象のインターフェースをExportするファクトリを作って中身を実装する、という感じです。

エディタの拡張だとIWpfTextCreationListerとかいうのを継承します。実際に操作する対象はIWpfTextViewとかになりますが。(さっきのテンプレート選べば自動的に追加されてるはずです)

で、これだけではだめで必要な情報をマニフェストに書いてあげないといけないです。

テンプレートを使ってプロジェクトを作ると、source.extension.vsixmanifest とかいうマニフェストファイルが既にあるので、こいつを開いて必要情報を埋めていくとビルド後のVSIXファイルに埋め込まれて機能拡張として利用できるようになります。

 

拡張機能たらしめるのはこのあたりの定義と、拡張用のInterfaceを実装したアセンブリとなります。簡単ですね(?)

で、欲しいというか拡張したい定義をMSDNなりで探して、いろいろいじくりまわしていく感じです。

とりあえずマニフェストの修正が終わったらFactoryを見ておきましょう。今回のサンプルではテキストエディタを装飾しようと思います。Visual Studio 2010以降、WPFで作られてますがテキストエディタ部分は背景やテキスト、選択行、キャレットなどの層が重なって表示されています。

で、Factoryの中にあるAdornmentLayerDefinitionは何をするもなかというとこの既定の層の間に挟む層(今回拡張する部分)です。こいつに対していろいろしてあげると、最終的にエディタ部分の各層が合成されてユーザーからは拡張機能として見える感じになります。

一口にエディタといっても編集できるかどうかや言語や種別など様々なので、この拡張機能がどのときに有効かというのをIWpfTextViewCreationListenerを継承したクラスの属性で指定してあげます。(ContentTypeやTextViewRoleなど)

まぁ既定値でいいでしょう。とりあえず。

で大事なのは拡張する層がどこに差し込まれるか?というZ-Orderを指定する箇所です。AdornmentLayerDefinition型のメンバ変数のOrder属性のAfterとBefore引数で前後の層を指定できるので、お好きなように設定します。設定できる層は9層あります。

image

なんとなくわかると思います。AfterとBeforeがどっちがどっちかわかりづらいですが。。

さて、この状態で一度デバッグ実行してみましょう。

実行すると、デバッグ対象の拡張機能が組み込まれた状態でVisual Studioの実験的なインスタンスが起動します。

適当なファイルを開いてみると、右上に紫色のボックスが描画されます。

デバッグなので、ステップ実行もできますし通常通り開発を進めていくことができます。実験的なインスタンスなので環境を変に壊すこともないですし嬉しいですね。

実際の動作はFactoryのTextViewCreatedメソッドでnewしてIWpfTextViewを渡してるクラスでいろいろやってるので、あとはお好きにそこをカスタマイズしていく感じで簡単にできます。

他にもいろいろな機能がありますので、是非自分好みのVisual Studioに仕上げていってください!

で、完成したら是非ギャラリーに公開してシェアしてくださいね♪

というわけでVisual Studio Advent Calendar 2012、2日目は「Visual Studioをあなた好みにしてみよう!」でした~。

 

おまけ

今回サンプルで作った機能拡張はこちらです。

 

ソースはこちらに置いているので、煮るなり焼くなり折檻するなりご自由にどうぞ! → GitHub

このネタ用拡張機能のインストールはこちらから! → WebMatrixManIDE

※チャックさん、素材提供ありがとうございました!

 

プレゼン時とか、ちょっと開発のお供にとかに是非!

 

※この手のやつは「痛IDE」とか言われていて、ネタ的には古典の部類ですが、いろんな意味で痛いIDEになること間違いなしです!

Visual Studioをあなた好みにしてみよう」への5件のフィードバック

  1. ピンバック: Visual Studioをあなた好みにしてみよう « ブチザッキ | ちゅどん道中記

  2. ピンバック: OPC Diary » Blog Archive » Git Source Control Providerの使い方

  3. ピンバック: Visual Studioをあなた好みにしてみよう « “I am not what I was”

  4. ピンバック: 2015年ふりかえり | ブチザッキ

コメントを残す