2

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

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

对于任何想法/提示,我将不胜感激。

4

2 回答 2

3

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

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

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

于 2013-10-31T01:34:04.197 回答
0

好吧,这个问题真的很老,但正如这里提到的:

格式化源代码时如何保留代码折叠

没有答案,我想我可以回答两个,这是我在那里发布的答案:

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

要创建代码区域,请执行以下操作:

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

我希望这可以帮助你。

于 2015-04-12T15:41:57.453 回答