Сворачивание инструкций If-Then-Else в редакторе кода (Delphi 2007)

StackOverflow https://stackoverflow.com/questions/723869

  •  05-09-2019
  •  | 
  •  

Вопрос

Время от времени я редактирую какую-нибудь длинную пару операторов 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 (или какой-либо другой)?

Это было полезно?

Решение

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

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

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

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

Другие советы

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

Еще одним большим помощником здесь было бы Пакет CnPack.Это мастер, который устанавливается в Delphi и раскрашивает ваши пары begin / end, значительно упрощая следование коду.Это точно не выполняет сворачивание кода, для этого вам нужно использовать теги {$REGION} {$ENDREGION}.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top