matarillo.com

The best days are ahead of us.

31日間ReSharper一周 Day 10: 型に移動

2012-12-30 18:17:12

元記事

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

今日の話題はCtrl+N、「型に移動」だ。

ReSharperの「型に移動」ポップアップ

Ctrl+Nを押すと、小さいウインドウがポップアップする。型名の一部または全体を入力すると、候補一覧が表示される。それから1つを選んでEnterを押せば、そのファイルが開かれる。

ソリューションエクスプローラが必要になるのは、もはや新しいファイルを追加するときだけだ。それ以外では、Ctrl+Nですべて事足りる。

しかも、ショートカット機能もある。

  • 先頭の大文字で探す。大文字を入力すれば、頭字語として入力されたかのように検索する。つまり、もしMDTと入力したならMyDataTableとMenuDropTagにマッチする。(これは普通の検索と混ぜてマッチさせることができる。だから、MDatTを探してMyDataTableを見つけるということもできる。)
  • ワイルドカード。* と入力すれば0以上の文字にマッチするし、+ では1以上の文字にマッチする。(これはファイルグロブ式のワイルドカードだ。つまり、「0文字以上のすべての文字」の意味だ。)

Ctrl+Nは、VSFileFinderとかなり直接競合する。両者ともほぼ同じように「あるパターンにマッチするファイルの一覧を表示して、そのどれかを開く」的なことをする。だから両者を比較してみると面白いんじゃないかと思った。以下に比較内容を記す。

  • 明らかにReSharperの方が良い点:
    • VSFileFinderは、ReSharperでいう「先頭の大文字」的なものをサポートしない。
    • Ctrl+Nにはキーバインドがあるが、VSFileFinderのキーストロークは見つけられないままだ。Visual Studioを終了して再起動するとまた表示されるんだけど。
    • Ctrl+Nは使い終わればすぐ消えるけど、VSFileFinderはドッキング可能ウィンドウになっていて、検索が終わっても場所をを取り続ける。
  • VSFileFinderの方が少し良い点:
    • どっちのツールでも検索したいもののフルネームを知っている必要はない。どちらも名前の一部分を指定できる。しかしVSFileFinderでは、一部分を指定するときに順序を問わない。「data table」はDataTableとTableOfDataにマッチする。ReSharperの方が制限が多い。一部分を指定するときには、型名に現れる順序のとおりでなくてはならない。(しかも、それぞれの語間に*を入力しないといけない。VSFileFinderではスペースを入力するだけでいいのに。)
    • 部分文字列で捜す場合はVSFileFinderの方がずっと簡単だ。名前のどこかに「Foo」を含む型を全部見つけたい時は、ReSharperでは「*Foo」と入力しないといけない。でもVSFileFinderでは「Foo」と入力するだけでいい。
  • 明らかにVSFileFinderの方が良い点:
    • VSFileFinderでは、一度に複数のファイルを開くことが簡単だ。 (まあそれは、ウインドウが常に表示されていて場所をとっているからこそだが。) これは、テストの際には本当にいい――「Foo」と入力すれば「Foo」と「FooTests」の両方が一覧に表示されるし、両方ともクリックして両方とも開くことができる。ReSharperにはこのオプションはない。

最後の項目がいい例だが、ReSharperとVSFileFinderとでは狙いがちょっと違い、適材適所だということがわかる。(僕らは全部の開発用PCに両方ともインストールした。)だけど両者を使ってみると、僕の場合は大体ReSharperのCtrl+Nを使う方に落ち着く。だからキーバインドの有無にはかなり説得力を感じる。

もしも、何かの理由で各ファイル1クラスにしていないなら、Ctrl+Shift+Nにも興味があるかもしれない。これだと(Ctrl+Nのように型名で探す代わりに)ファイル名で探す。


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