31日間ReSharper一周 Day 13: ファイル構造ビュー
2012-12-30 18:17:12
「31日間ReSharper一周」の13日目にようこそ。
Delphiのいくつかのバージョンには「構造」ビューがあり、フィールドとメソッドとプロパティをツリー表示する。ReSharperは「ファイル構造」ビューで更に数歩進んでいる。Ctrl+F11でアクセスできるが、素晴らしいショートカットってわけではない。多分、一旦ウインドウを表示したら、後はそれをドッキングさせたままにするだけだろう。
メソッドのソート
名目上は、コードの構造を一目で見るためにこれを使える。でも実のところ僕はそのためには使っていない。僕の指は「すべて折りたたむ」のショートカットを覚えこんでいる(Ctrl+M、Ctrl+Oだと思うけど、気にとめた事ないからな……どれどれ……ああ合ってた)。
僕が「ファイル構造」ビューを使うのは並べ替えのためだ。全メソッドがアルファベット順になっていれば、僕らの人生はさらに楽ちんだろう。しかしReSharperにはその選択肢がないので、抽出したメソッドは常に間違った場所に置かれる。でも、「ファイル構造」ウインドウではドラッグ&ドロップができて……
メソッドを新しい場所にドロップすれば、ReSharperはコードエディタでメソッドを移動する。
空行についてはたまにおかしな動きをする。でも、ものごとを正しい順序に保つ選択肢がReSharperに追加されるまでは(世の中には無数の異なるコーディングスタイルがあることを思えば、それは難しい注文なのだが)、ツリーのノードをドラッグ&ドロップした後に「すべて折りたたむ」をし、空行の一部を取り除く、というのはカット&ペーストよりはるかに速い。
リージョンが好きなら……
リージョンを実際に使っているし気に入ってるという人たちのために、ReSharperの「ファイル構造」ビューのリージョンは見栄えがするし、折りたためる。
リージョンが嫌いなら……
個人的には、コードにリージョンがあると読みにくくなると思う――それに、もしコードが複雑すぎるからリージョンによる組織化が必要だっていうのなら、それはクラスから匂いがするってことだよ。
もしこの陣営にいるのなら、ReSharperが力になれる。リージョンボックスの右上に、小さくて青い「X」が見えるかな?それを1回クリックすれば、リージョンタグを消せる(#regionと#endregionのコード行が削除されるだけで、リージョンの中身は削除されない)。そしたらすでに「ファイル構造」ウインドウの中にいるわけだから、メソッドをドラッグして並び替えする作業に取り掛かれる。
もちろん、意図しないときにうっかりリージョンタグを消してしまったとしても、それは他と同じくコードの変更だから、元に戻すことができる。