1

時々、次のように、if-then-else ステートメント (またはさらに悪いことに、ネストされたif-then-else ステートメント) の長いペアを編集しています。

  if A < B then 
  begin
    DoSomething; 
    DoSomethingElse;
    {...and more statements going on and on and on...}
    FinallyWrapUpThisBit;
  end 
  else 
  begin
    DoThis;
    DoThat;
    {...and more statements going on and on and on...}
    FinallyWrapUpThisBit;
  end;

...そして、最初の begin-end ペアを「折りたたんで」、下部の「else」部分を表示したいと思っています (通常は、if-then ステートメントより上の何かを参照しているためです。 "begin..." の左側に [+} 記号を付けて、もう一度展開します。

IDE で「折りたたみ」機能を調べましたが、これを行うコマンドはないようです。私の古い D6 の CodeRush がこれを行ったようですが、私は物事を想像することができました。(私は非常に活発な想像力を持っています...)。

Castalia (または他のプラグイン) などの IDE プラグインのいずれかでこれが行われますか?

4

3 に答える 3

7

リファクタリング ツールを使用して、条件分岐のコードを別の関数に移動します。その後、何も折りたたむ必要はありません。への呼び出しなど、2 つの分岐に共通するコードをマージできることもあるかもしれませんFinallyWrapUpThisBit

于 2009-04-07T02:43:16.623 に答える
7

箱から出してすぐに使えるプレーンな Delphi では、begin...end で囲む必要があります。

  {$region 'begin...end'}
  .... 
  {$endregion}

コードテンプレートを介して行うことができます...

コード ブロック (begin..end) の素敵な色付きビジュアライゼーションで Castalia を覚えていますが、折り畳み可能かどうかは覚えていません。

于 2009-04-07T01:49:30.060 に答える
1

ここでのもう 1 つの大きなヘルパーはCNPackです。これは、Delphi にインストールされ、開始/終了のペアに色を付けて、コードをたどりやすくするウィザードです。{$REGION} {$ENDREGION} タグを使用する必要があるため、コードの折りたたみは厳密には行われません。

于 2009-04-13T23:27:08.897 に答える