matarillo.com

The best days are ahead of us.

31日間ReSharper一周 Day 12: 型階層ビュー

2012-12-30 18:17:12

元記事

31日間ReSharper一周」の12日目にようこそ。

今日ネタにする機能は、あまりに長いこと欲しい欲しいと願っていたせいか、もうすでに存在しているってことをどうにも覚えられない。「型階層」ビューだ。Ctrl+Alt+Hでアクセスできる。

ReSharperの型階層。System.Windows.Forms.Formのクラス階層を表示。

カーソルが型名の上にあるときにCtrl+Alt+Hを押すと、型階層ウインドウがポップアップし、その型の先祖型と直接の子孫型が表示される。(ReSharperの他のウインドウと同じくドッキング可能だ。)ツリーを展開すれば、さらに下の子孫型も表示できる。もしも型階層が複雑で、いつもインタフェース経由で操作しているのであれば、インターフェースにカーソルを置いてCtrl+Alt+Hを押せばツリー全体を表示できる。

ノードを右クリックすると「ここを基点にする」を選択できる。そうすると、その型の上でCtrl+Alt+Hを押したのと同じ状態にツリーが再構成される。あるクラスの親クラス上でこれをすれば、より多くのクラスがツリー上に表示される。(先祖型については元クラスの直系の先祖しか見れないからね。でも先祖型のうちの1つを基点にするなら、他の子孫も全部ツリー上に表示できる。)現在の基点クラスは太字で表示される。

ReSharperの型階層。System.Windows.Forms.ContainerControlのクラス階層を表示。

「ここを基点にする」は、どの型を展開してどれを折りたたんだかを記憶して、その状態を保つ。これはマジですごいと思った。

型階層ウインドウには他のビューもいくつかあって、ツールバーの右側にある、小さいオブジェクトグラフのようなボタンで切り替えられる。メインビューの他に、子孫だけを表示するビューがある。これはあんまり面白くない。インデントが少ないメインビューと変わらない。

第3のビューでは先祖型だけが表示される。先祖型ビューが面白いのは、ツリーを逆にする(親が下位ノードとして表示される)ところだ。だから、親クラスだけじゃなく、クラスが実装しているインターフェースも全部表示できる。

ReSharperの型階層。System.Windows.Forms.Formの先祖型を表示。

右クリックコンテキストメニューには、「ここを基点にする」の他に、「使用箇所を検索」と「リファクタ」サブメニューがある。だから、型階層を見ているときに、その中にあるクラスの名前を突然変えたくなったって、実際に変更できる。(賢いことに、ソースコードを持っていないクラスを「リネーム」するといった操作はグレーアウトされる。)

最後になるが、ツリー上の型をダブルクリックすれば、その型のコードにジャンプできる。(ソースコードを持っていない型だと、Visual Studioの新しい「メタデータから」コードビューではなく、おんぼろクラスブラウザが使われるけれども。)


31日間ReSharper一周 インデックスへ戻る