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

См. также этот вопрос: Как избежать расширения складчатых областей при вызове средства форматирования кода?

Это не обман, потому что я заинтересован в решении проблемы с помощью ToolsApi.

Когда я нажимаю CTRL + D, код прекрасно форматируется (в основном).
Но все свернутые разделы кода разворачиваются.
Есть ли способ держать эти разделы сложенными.

Если нет, можно ли сохранить информацию о свертывании кода перед форматированием, чтобы восстановить ее позже?
Я думаю о написании надстройки IDE с использованием API Open Tools.
Я использую XE7, но эта проблема существует во всех версиях, имеющих исходное форматирование.

Возможный сценарий включает:

  • Записывайте и воспроизводите свертывания кода (вызовы хука elide).
  • Разрешить форматирование только для текущего блока (переопределить действие CTRL + D).

person Johan    schedule 10.04.2015    source источник
comment
Я предполагаю, что это будет включать перехват вызовов elide для создания списка свернутых блоков, а затем обход исходного кода в редакторе для восстановления этих блоков.   -  person Johan    schedule 10.04.2015
comment
stackoverflow.com/q/19691231/62576   -  person Ken White    schedule 10.04.2015
comment
Также подумайте, что произойдет, если форматирование изменит разрывы строк в коде. Так что простого сохранения позиций/длин свернутого кода недостаточно, если не учитывать, что они могут изменить значение во время форматирования.   -  person Remy Lebeau    schedule 10.04.2015


Ответы (1)


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

Чтобы создать области кода, выполните следующие действия:

{$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