2007年5月17日木曜日

Day 13: ファイル構造ビュー

元記事

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


Delphiのいくつかのバージョンには「構造」ビューがあり、フィールドとメソッドとプロパティをツリー表示する。ReSharperは「ファイル構造」ビューで更に数歩進んでいる。Ctrl+F11でアクセスできるが、素晴らしいショートカットってわけではない。多分、一旦ウインドウを表示したら、後はそれをドッキングさせたままにするだけだろう。


ReSharperの「ファイル構造」ビュー


メソッドのソート


名目上は、コードの構造を一目で見るためにこれを使える。でも実のところ僕はそのためには使っていない。僕の指は「すべて折りたたむ」のショートカットを覚えこんでいる(Ctrl+M、Ctrl+Oだと思うけど、気にとめた事ないからな……どれどれ……ああ合ってた)。


僕が「ファイル構造」ビューを使うのは並べ替えのためだ。全メソッドがアルファベット順になっていれば、僕らの人生はさらに楽ちんだろう。しかしReSharperにはその選択肢がないので、抽出したメソッドは常に間違った場所に置かれる。でも、「ファイル構造」ウインドウではドラッグ&ドロップができて……


ReSharperの「ファイル構造」ビュー


メソッドを新しい場所にドロップすれば、ReSharperはコードエディタでメソッドを移動する。


空行についてはたまにおかしな動きをする。でも、ものごとを正しい順序に保つ選択肢がReSharperに追加されるまでは(世の中には無数の異なるコーディングスタイルがあることを思えば、それは難しい注文なのだが)、ツリーのノードをドラッグ&ドロップした後に「すべて折りたたむ」をし、空行の一部を取り除く、というのはカット&ペーストよりはるかに速い。


リージョンが好きなら……


リージョンを実際に使っているし気に入ってるという人たちのために、ReSharperの「ファイル構造」ビューのリージョンは見栄えがするし、折りたためる。


ReSharperの「ファイル構造」ビューでリージョンを展開している所
ReSharperの「ファイル構造」ビューでリージョンを折りたたんでいる所


リージョンが嫌いなら……


個人的には、コードにリージョンがあると読みにくくなると思う――それに、もしコードが複雑すぎるからリージョンによる組織化が必要だっていうのなら、それはクラスから匂いがするってことだよ。


もしこの陣営にいるのなら、ReSharperが力になれる。リージョンボックスの右上に、小さくて青い「X」が見えるかな?それを1回クリックすれば、リージョンタグを消せる(#regionと#endregionのコード行が削除されるだけで、リージョンの中身は削除されない)。そしたらすでに「ファイル構造」ウインドウの中にいるわけだから、メソッドをドラッグして並び替えする作業に取り掛かれる。


もちろん、意図しないときにうっかりリージョンタグを消してしまったとしても、それは他と同じくコードの変更だから、元に戻すことができる。

1 件のコメント:

  1. 逆リンク!http://mimori.org/~h/tdiary/20070517.html#p02

    返信削除