CodeRush Xpress – Refactor! の今 -

えー、順序が逆になってしまいましたが。

猿頁 » Blog Archive » インデント単位で折りたたみたい:Code Collapse VS Add-in で Code Collapse をご紹介した際に、その前提となるアドインとして CodeRush Xpress もちょろっと触れてみたわけです。

VB2005 で盛り上がった頃に、コードの整形が楽になる Refactor! というアドインを 猿頁 ≫ Blog Archive ≫ Refactor! でご紹介したことがあるんですが、今回久しぶりに使ってみようかしらとダウンロードに行ったら、いつの間にか CodeRush と合体していて、無償版は CodeRush Xpress と名乗るようになっていたのでした。びっくりー。

Free Coding Assistance Add-in for Visual Studio Developers

無償版があるわけですから当然 製品版 もありまして。
いいやとりあえず無償版でひと通り試してみようと思いきや、ヘルプは製品版にしか付属していないのでした。

一応チュートリアル動画や機能の説明ページは公開されているんですが、英語だということもあり、なかなかこれが使いにくい。

つことで、主な機能の具体的な使い方や注意点を書きとめてみましたよ。


なお、CdeRush は Xpress Edition には対応していません。アドインが組み込めるのは Standard Edition 以上ですので、そのへんご注意ください。


まずは Navigation Features のページから。

Camel Case Navigation (Alt+[←]/[→])

たとえば CreateNewData() のように、メソッドや変数に命名する際に単語をセパレータなしで列挙・各単語の頭 1 文字のみを大文字にする、ってのをキャメル記法と呼びます。Microsoft系の言語では .NET になったあたりから一般的に使われるようになった命名規則なんですけれども、VS IDE のテキストエディタは相も変わらず Ctrl+[←]/[→] でスペースなどを区切りとしたカーソル移動なわけです。

CodeRush アドインをインストールすると、Alt+[←]/[→] でキャメル記法でくっついていても、単語単位でカーソルを移動できるようになります。

Collect Marker (Esc)

詳しくはリファクタリングのあたりでお話ししますが、たとえばコードの一部を独立したメソッドとして切り出したりできるわけです。

切り出した時に、切り出し元の位置には外側に切り出したメソッドを呼び出すコードが自動挿入され、その左端に小さく「▲」のマークがつきます。この「▲」をマーカーと呼びます。

上で提示したサンプル画面は行数が少ないのでさほどではありませんが、実際のコードでは切り出し元と先はかなり記述位置が離れることが多いです。
切り出した際にはカーソルは切り出し先のメソッド側に飛びます。
そちらの整形が終わってから、切り出し元の位置に戻りたい。

そんな時に、Esc。

切り出し元の「▲」マーカーの位置にカーソルが移動し、わかりやすいように円形のマーク(ビーコンと呼びます)が収束してお知らせしてくれます。

Esc で切り出し元に戻ると、「▲」マーカーは解除されます。

Structural Highlighting

別に何の操作も要りませんが、クラスやメソッド、メソッド内のループ構造などのインデント状態に合わせて「括り線」が表示されます。

Tab to Next Reference (Tab/Shift+Tab)

たとえばこんなコードを書いてみたとして。

「Setup」を選択して Tab または Shift+Tab を押すと、すべての「Setup」に下線がついて渡り歩けるようになります。

特にマーカーは表示されませんが、この機能でも Esc を押すことで振り出しに戻れます。

この時のビーコンは、円形収束ではなくカギカッコ収束です。

Quick Navigation (Shift+Ctrl+Q)

Shift+Ctrl+Q を押すと、クイックナビが表示されます。
一見 Intellisense のようにも思えますが、これは記述の補助ではなく、そのプロジェクト内に実装されているクラスやメソッドへのジャンプ機能です。

特定行を選択して Enter を押すと、そのコードの先頭へジャンプします。

先頭の何文字かを入力すると、表示候補の絞り込みもできます。

大文字で入力すると、表記順序やつながりを無視し、各文字が任意の位置に含まれる文字列だけが候補となります。

右上の[preview target location]ボタンを押し込んでおくと、表示候補間でフォーカスを移動させるごとに、その候補の実装コードが表示され、一瞬色がついてお知らせしてくれます。ちょっと確認したい場合にも便利です。

あらかじめ特定のメソッド名などを選択した状態でクイックナビを表示させると、その選択文字列で表示候補を絞り込んでくれたりもします。

Quick File Navigation (Ctrl+Alt+F)

Ctrl+Alt+F を押すと、クイックファイルナビが表示されます。

使い方はだいたいクイックナビと同じですが、こちらはプロジェクトを構成するファイルが列挙されます。


次、 Selection Features のページから。

Camel Case Select (Shift+Alt+[←]/[→])

Camel Case Navigationの応用系。キャメル記法上の単語単位での選択ができます。

Selection Increase (テンキーの[+]) / Selection Reduce (テンキーの[-])

たとえば、メソッド内にカーソルがある時にテンキーの[+]を押すと、そのメソッドを丸ごと選択できます。
この状態でさらにテンキーの[+]を押すと、少しずつ選択範囲が広がっていきます。

テンキーの[-]は、逆に選択範囲をどんどん狭めていきます。

紹介ページでは「Shift+Alt+[=]」で説明されていますが、日本語キーボードではこのキーは効きません。
また、CodeRush のショートカットは VS IDE よりも先にキーをフックしますので、「+」「-」という「文字」はテンキーから入力できなくなります。

この機能は、ショートカットの割り当てを変更した方がいいかもしれません。

Intelligent Cut, Intelligent Copy, and Paste Replace (Ctrl+X、Ctrl+C、Ctrl+Alt+V)

文字列を選択している状態でのカット・コピー・ペーストはふつーの VS IDE 仕様です。

文字列を選択していない状態で Ctrl+C とか押すと、カーソル周りの単語を自動的に選択してコピーしてくれます。Ctrl+X は、カーソル周りの単語を自動的に選択してのカットになります。

文字列を選択していない状態で Ctrl+Alt+V を押すと、カーソル周りの単語を自動的に選択した上でのペーストになります。貼り付け (Paste) というより置換 (Replace) になるわけですね。

紹介ページでは Paste Replace は Ctrl+B と説明されていますが、インストール直後のデフォルトでは Ctrl+Alt+V に割り当たっています。


次、Declaration Features のページから。

Consume-first Declaration (Ctrl+@)

正確に言うと、Ctrl+@ は CodeRush のプルダウンメニューを表示させるショートカットなので、Consume-first Declaration 限定ではないんですがまあいいや。

まず、Intellisenseとかのお世話になりながらガンバって以下のコードを記述します。
使いたいクラスの型を書くわけですね。

入力した行にカーソルが当たっている状態で Ctrl+@ を押すと、

記述した型を右辺として、その型の変数の宣言文が自動的に生成されます。

変数名の部分はフィールド化され、好きな名称に書き換えることができます。

紹介ページの説明と実際の動作はちょっと違いますので、以下注意事項。

  • 宣言文を自動的に生成できるかどうかの目安として、Intellisense のツールチップに「Module[]」などと表示される、と説明がありますが、これは C# だけのようです。VB ではツールチップに変化はありません。
  • 「GetModules()」まで記述するとその右側に「…」が表示されるスクリーンショットになっていますが、これは製品版のみです。Xpress (無償版)では、その行の左端に暗い赤色の四角が表示されます。
  • ショートカットは Ctrl+「`」と説明されていますが、日本語キーボードでは Ctrl+@ です。

ひとまず、このへんまでかなー。
あ、あと、憶えといた方が便利なショートカット。

Highlight All References (Ctrl+Alt+U)

単語を選択してから Ctrl+Alt+U を押すと、スコープ内の同じ単語にすべてチェックがつきます。
Tab to Next Reference と同じ動作ですが、Tab は押したと同時に次の位置へ移動、Ctrl+Alt+U はカーソル位置が移動せずに全チェックがかかるところで使い分けるといいような気がします。

オプションダイアログを表示 (Shift+Ctrl+Alt+O)

メニューバー等には CodeRush のオプションダイアログを表示させる項目がなぜか存在しません。
ので、このショートカットを知らないと動作の調整ができません。大事です。


DXcore を前提としたプラグインも、けっこう提供されています。

dxcorecommunityplugins – Project Hosting on Google Code

とか。
私はとりあえず、

HighlightCurrentLineInEditor – dxcorecommunityplugins – Highlights the currently active line in the editor. – Project Hosting on Google Code (カーソル行色を指定できる)

などを入れてみたり。

1 コメント

  1. [...] This post was mentioned on Twitter by ru2li2. ru2li2 said: VS2005でRefactor!のフリー版を使っているが、その解説 http://salvw.miscnotes.com/index.php/archives/3760 これはありがたい。フリー版にも設定ダイアログあ [...]

コメントを投稿