Как мне избежать разворачивания свернутых областей при вызове программы форматирования кода?

Как известно, Delphi 2010 имеет встроенное форматирование кода. Однако при форматировании разворачиваются все свернутые блоки кода. Есть идеи, как это исправить? Эта «особенность» меня особенно раздражает, и я был очень удивлен, когда не смог найти ни одного упоминания об этой проблеме. Что я пробовал:

  • Поиск альтернативы, например, GExperts имеет плагин форматирования кода, но он также разворачивает блоки кода.
  • Пытался написать макрос для GExperts: Ctrl + D (код формата) -> различные сочетания клавиш для сворачивания / разворачивания кода, но не смог заставить его уважать все свернутые / развернутые блочные структуры.
  • Напишите сценарий CnWizards, но не можете найти пример сворачивания кода.

Буду очень признателен за любую идею / подсказку.


person Standard User    schedule 30.10.2013    source источник


Ответы (2)


Один из способов обойти это - не форматировать весь файл сразу, а выбрать часть и отформатировать ее.

Пока вы не выбираете регион, состояние раскрытия всех регионов остается нетронутым.

Форматирование всего файла сразу, как правило, в любом случае не является хорошей идеей, потому что модуль форматирования не «понимает», что он делает. Я всегда проверяю все изменения, которые он вносит, и это проще, когда нет изменений за пределами видимой области.

person Wouter van Nifterick    schedule 31.10.2013
comment
Большое спасибо за ответ. Однако выделение части текста и последующее ее форматирование по-прежнему разворачивает другие блоки кода в Delphi 2010. То же самое и для программы форматирования кода GExperts. Для какой версии Delphi это работает? - person Standard User; 31.10.2013

Что ж, этот вопрос действительно старый, но, как уже упоминалось здесь:

Как сохранить сворачивание кода при форматировании исходного кода

и нет ответа, я думал, что смогу ответить на оба, вот ответ, который я там написал:

Что вы можете сделать, так это создать области и отключить сворачивание кода, отформатировать код, а затем снова включить сворачивание кода.

Для создания областей кода выполните:

{$REGION 'Optional text that appears when the code block is folded'} 
// code 
{$ENDREGION}

Чтобы переключить опцию сворачивания кода, нажмите Ctrl + Shift K + O.

Итак, поместите свой код в области, сложите то, что хотите, нажмите Ctrl + Shift K + O, чтобы отключить сворачивание, отформатируйте, нажав Ctrl + D, затем снова нажмите Ctrl + Shift K + O, чтобы снова включить сворачивание.

Когда вы снова активируете сворачивание, то, что было свернуто с областью, останется свернутым.

источник информации: http://docwiki.embarcadero.com/RADStudio/XE6/en/Using_Code_Folding

Я надеюсь, это поможет вам.

person Carlos Goncalves    schedule 12.04.2015