インデント単位で折りたたみたい:Code Collapse VS Add-in

ここしばらく、ほんっとーに久しぶりにコーディング三昧のさるべーじですこんばんは。

といってもメインは人様が作ったコードの修正なもんですから、やっぱロジックを追っかけにくかったり修正しにくかったりするわけで、このへんなんとか素早く駆け抜ける手法を模索なう。

特につらいことのひとつに、やたらネストの深いコードってのがあります。ややこしい振り分けやループを一気に書き切っているせいで、ネストは深いわ縦に長いわでいいとこひとつもありません。
ではそのへん外出しで別メソッド起こしまくれば済むかというと、今度はメソッド渡りまくりでトレースかける羽目になるので、やはりややこしさは変わりません。

CodeRush Express 入れてるのでネストのガイドは表示されますが、スクロールさせながらたどっていくとやはりよくわからなくなってしまいます。

猿頁 » Blog Archive » 「選択範囲を非表示」が使えなくなった あたりで嘆いていた 選択範囲の非表示 機能が、やはりどうしてもほしいところです。VB は、2005 からメソッド単位までの折りたたみしかできなくなってしまっているんですね。
このへん以前、中の人に尋ねたことがあるんですけど、やっぱ実装する気はないようなお返事でした。くそお。

では。純正で却下されたなら拡張機能とかで誰かが作っていないか。
ということで探してみたら、Code Collapse VS Add-in というアドインを見つけました。


JayFlowers > Code Collapse VS Add-in

これは Developer Express 社 の DXCore というアドインを前提としたプラグインです。
DXCore は Developer Express 社の提供しているコンポーネントやツールに同梱されているコアコンポーネントです。無償提供されている CodeRush Xpress をインストールすると一緒に入りますので、使ってみたい方は事前に DXCore のインストールを済ませておいてください。

1. 入手とインストール

Code Collapse VS Add-in は、上述のページから CR_CodeFold.dll を直接ダウンロードすれば完了です。
インストールも、DXCore がインストールされていればマイドキュメントフォルダの下に DevExpress\IDE Tools\Community\PlugIns というフォルダ (デフォルトでは C:\Users\(ユーザー名)\Documents\DevExpress\IDE Tools\Community\PlugIns) ができているはずですので、Visual Studio が起動されていない状態でそこにコピーすれば OK です。

2. 初期設定

Code Collapse VS Add-in を使うには、DXCore の設定機能を使って、キーボードショートカットに割り当ててやる必要があります。

VS IDE 上で Shift+Ctrl+Alt+「O」(オー) を押すと、DXCore (というか Developer Express 社製コンポーネント) の設定ダイアログが表示されます。

設定ダイアログの左側の機能ツリーから、[IDE]-[Shortcuts] を選択します。

真ん中のキー割付表から、[Selection]-[Defining] を選択します。
これは、ここでなければならないということではなさそうですがまあいいかなーと。

キー割付表の [Defining] を右クリック → コンテキストメニューから [New Keyboard Shortcut] を選択します。

新しいショートカット設定の行ができます。

右側上の [Key 1]という入力欄にマウスクリックでフォーカスを当て、割り当てたいショートカットを入力します。
私は今回 Ctrl+「3」を割り当ててみることにしますので、Ctrl キーを押しながらフルキーの「3」を押してみました。

[Enabled] チェックボックスにチェックをつけます。

[Commnad] コンボボックスから、「CreateHiddenRegion」を選択します。

先ほど設定したショートカットが VS IDE 純正のショートカットとカブり、かつ DXCore 側の動作後に連続して純正の機能を動作させたくない場合は、[After executing this command, pass shortcut on to IDE for default handling.] チェックボックスにチェックをつけます。それ以外の場合はチェックをはずしておきます。

[Use]ツリーでは、ショートカットを有効にする条件となるエディタの状態を設定します。
とりあえず、[Editor]-[Line]-[Before First Char] と [Editor]-[Selection]-[Any Selection]-[Multiple Lines]にチェックをつけておきます。

以上の設定ができたら、[OK] を押して確定します。

3. 使い心地

ピンクのラインの位置にカーソルがある状態で Ctrl+3 を押すと、

おおお、For ~ Next の部分だけたたまらさるよ!

そのままのカーソルの位置でもう一度押すと、元のとおりに広がってリージョンが解除されるよ!

たたんだ状態で Ctrl+M → Ctrl+M で広げると、リージョンは残るよ!

複数行選択(最終行末尾の改行文字は含めないのがコツ)した状態で押すと、

ネストと無関係な範囲で折りたためるよ!

リージョンの内側で選択しない状態で押すと、直近のリージョンが解除されます。
ただしちょっとややこしいのが、

  • Visua Studio 純正の、メソッド単位等のリージョンも解除の対象となります。
  • リージョンの最初の行の最初の単語の左側(インデントの空白)は、そのリージョンの外側扱いです。
    ので、その位置で解除されるリージョンは、カーソル行のリージョンよりひとつ外側のレベルとなります。
  • 行単位で選択した範囲にリージョンをかけると、折りたたんだ行と、その次の行が 1 行に並んでしまいます。
  • 複数のリージョンに中途半端にまたがるリージョンも作ることができてしまいます。

なあたりですね。

中途半端にまたがるリージョンの開閉を行ったりすると、どうもときどきコードが全部消えたり Visual Studio が落ちたりと、ちょっとおっかない動作をします。
こーなってしまったら、一度そのコードエディタ(ドキュメントウィンドウ)を閉じましょう。
Code Collapse VS Add-in はリージョン状態をどこにも記録しないので、一度閉じてまた開くと、前回に設定したリージョンはすべてなくなって、Visual Studio 純正のリージョン状態となります。


ということで、私としてはしばらく使い込んでみてもいいかなー的な評価となりました。
Visual Studio が落ちる場合があるのと、手動リージョンが保存できないのはけっこうな地雷なんですが、自分の操作の癖と照らし合わせて、ある程度踏みにくいようであればイキかなーと。

実はもうひとつ、同じようなアドインを見つけてあるので、そっちと比較してみたいよなーと思ってもいます。

コメントを投稿