在调用代码格式化程序时,如何避免展开折叠区域?

时间:2013-10-30 18:40:45

标签: delphi delphi-2010 code-formatting code-folding

如您所知,Delphi 2010具有内置的代码格式。但是,格式化展开所有折叠的代码块。任何想法如何解决它?这个“功能”对我来说特别烦人,当我找不到任何提及这个问题的时候,我真的很惊讶。我尝试了什么:

  • 搜索替代方案,例如,GExperts具有代码格式化程序插件,但它也展开了代码块。
  • 尝试为GExperts写一个宏:Ctrl + D(格式代码) - >各种代码折叠/展开的快捷方式,但无法使其尊重所有折叠/展开的块结构。
  • 编写CnWizards脚本,但找不到代码折叠示例。

我真的很感激任何想法/提示。

2 个答案:

答案 0 :(得分:3)

解决此问题的一种方法是不要一次格式化整个文件,而是选择一个部分,然后对其进行格式化。

只要您不选择区域,所有区域的展开状态保持不变。

一次格式化整个文件通常不是一个好主意,因为格式化程序并不“理解”它正在做什么。我总是会检查它所做的所有更改,当在可见区域之外没有任何变化时,这会更容易。

答案 1 :(得分:0)

嗯,这个问题真的很老了,但正如这里提到的那样:

How to preserve code folding when formatting source

并且没有答案,我以为我可以回答这两个问题,这是我在那里发布的答案:

您可以做的是创建区域并禁用代码折叠,格式化代码,然后重新启用代码折叠。

创建代码区域:

{$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重新启用折叠。 / p>

当您重新启用折叠时,折叠的区域将会保持折叠状态。

信息来源:http://docwiki.embarcadero.com/RADStudio/XE6/en/Using_Code_Folding

我希望这会对你有所帮助。

相关问题