Свертывание операторов If-Then-Else в редакторе кода (Delphi 2007) - PullRequest
1 голос
/ 07 апреля 2009

Время от времени я редактирую какую-то длинную пару операторов 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;

... и я хочу "свернуть" первую пару начала-конца, чтобы поднять нижнюю часть "else" (обычно потому, что я имею в виду что-то выше значения if-then. Может быть, это так просто сказал бы «начать ...» и имел бы знак [+} слева от него, чтобы снова развернуть его.

Я исследовал функции "fold" в IDE, но ни одна из команд, похоже, не делает этого. Кажется, что мой CodeRush для моего старого D6 сделал это, но я мог бы вообразить вещи. (У меня очень активное воображение ...).

Делают ли это какие-нибудь плагины IDE, такие как Castalia (или какой-нибудь другой)?

Ответы [ 3 ]

7 голосов
/ 07 апреля 2009

Используйте инструменты рефакторинга для перемещения кода условных веток в отдельные функции. Тогда вам не нужно будет ничего складывать. Вы также можете обнаружить, что можете объединить код, который является общим для двух веток, например, вызов FinallyWrapUpThisBit.

7 голосов
/ 07 апреля 2009

С простой Delphi из коробки, вы должны окружить свое начало ... конец

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

, что можно сделать с помощью шаблона кода ...

Я помню Касталию за красивую цветную визуализацию блоков кода (начало .. конец), но я не помню, была ли она складной.

1 голос
/ 14 апреля 2009

Еще один большой помощник здесь будет CNPack . Это мастер, который устанавливается в Delphi и раскрашивает ваши пары начала / конца, делая НАМНОГО проще следовать коду. Он не выполняет свертывание кода, для этого вам нужно использовать теги {$ REGION} {$ ENDREGION}.

...