Сворачивание инструкций If-Then-Else в редакторе кода (Delphi 2007)
Вопрос
Время от времени я редактирую какую-нибудь длинную пару операторов 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}.