Visual Studioのビジュアライザをc#で開発してみる
今日はやけに小物作りが栄えてます。その中でビジュアライザの開発をしてみたので、VisualStudioプラグイン開発系列に興味があるかたは是非触ってみるといいと思います。
ビジュアライザとは
VSでデバッグをしていれば誰しも見かけたことがあるであろうコイツの事です。正直標準で入っている奴の使い勝手はいまいち過ぎますけど
実はこれ自作できます。
作りました
Uriに入ってるパスやUrlを開くだけのシンプルなもの。地味に欲しかったんですよね
kamiyaowl/UriVisualizer · GitHub
使い方
dll/UriVisualizer.dll
をC:\Users\<UserName>\Documents\Visual Studio 2013\Visualizers
に入れるだけでおk。簡単ですね。
なんだか調べても解説しているところがMS公式ぐらいしかなかったので珍しく解説記事を書いてみます。
つくりかた
プロジェクトを作成する
クラスライブラリにします。続いて参照の追加で
追加します。
追加したdllのusingを追加すればあとは優秀なIntellisenceが仕事をしてくれます。
using Microsoft.VisualStudio.DebuggerVisualizers;
実装する
Class1って名前ではダサいので適当に名前を変え、DialogDebuggerVisualizer
を継承させます。
void Show(IDialogVisualizerService,IVisualizerObjectProvider)
を実装させます。コードを見て分かる通り第二引数の.GetObject()でVisualStudioから投げられた対象のオブジェクトが拾えます*1
中に適当な処理*2を書いて実装は終了です。
ついでにテストできるようにテストメソッドを追加しておきます。
おまじない
VisualStudioが呼び出せるよう情報をusing~namespace間に書き足します。
ここまでやってこんな感じになります。
わからなければソース読んでください、ソース
UriVisualizer/UriVisualizer/UriVisualizerDebugger.cs at master · kamiyaowl/UriVisualizer · GitHub
テストしてみる
実際に動かしてみたいので別プロジェクトから呼んでみます。
ソリューションを右クリックしてコンソールアプリケーションのプロジェクトを追加、参照のソリューションからさっき作ったとおぼしきプロジェクトを追加します。
あとは作ったことすら忘れてしまっているかもしれないテストメソッドにデータを投げてあげればVisualStudioを経由せずに動作テストできます。
UriVisualizer/VisualizerTest/Program.cs at master · kamiyaowl/UriVisualizer · GitHub
実行できない時はコンソールアプリケーションを右クリックしてスタートアッププロジェクトに追加しましょう
まぁ動けば完成、dllを指定場所に突っ込めばVisualStudioでデバッグするときに使えます。
ここまでの流れがとても簡単かつデバッグの助けになるので、自作クラスでテスト・デバッグ用にクソみたいなコードを書くのがだるいのであればこのようなツールを検討してみるのもいいかもしれません。