Delphi 调用代码格式化程序时,如何避免展开折叠区域?
正如您所知,Delphi2010具有内置的代码格式。但是,格式化会展开所有折叠的代码块。有没有办法解决这个问题?这个“特性”对我来说特别烦人,当我找不到任何关于这个问题的提及时,我真的很惊讶。我所尝试的:Delphi 调用代码格式化程序时,如何避免展开折叠区域?,delphi,delphi-2010,code-formatting,code-folding,Delphi,Delphi 2010,Code Formatting,Code Folding,正如您所知,Delphi2010具有内置的代码格式。但是,格式化会展开所有折叠的代码块。有没有办法解决这个问题?这个“特性”对我来说特别烦人,当我找不到任何关于这个问题的提及时,我真的很惊讶。我所尝试的: 搜索替代方案,例如,GExperts有代码格式化程序插件,但它也可以展开代码块 尝试为GExperts编写宏:Ctrl+D(格式代码)->各种代码折叠/展开快捷方式,但无法使其尊重所有折叠/展开的块结构 编写CnWizards脚本,但找不到代码折叠示例 如有任何想法/提示,我将不胜感激 解
- 搜索替代方案,例如,GExperts有代码格式化程序插件,但它也可以展开代码块李>
- 尝试为GExperts编写宏:Ctrl+D(格式代码)->各种代码折叠/展开快捷方式,但无法使其尊重所有折叠/展开的块结构
- 编写CnWizards脚本,但找不到代码折叠示例
如有任何想法/提示,我将不胜感激 解决这个问题的一种方法是,不要一次格式化整个文件,而是选择一部分,然后格式化它 只要不选择区域,所有区域的展开状态都保持不变
一次格式化整个文件通常不是一个好主意,因为格式化程序不“理解”它在做什么。我总是检查它所做的所有更改,如果在可见区域之外没有任何更改,这就更容易了。好吧,这个问题确实很老了,但正如这里提到的: 没有答案,我想我可以回答这两个问题,以下是我在那里发布的答案: 您可以做的是创建区域并禁用代码折叠,格式化代码,然后重新启用代码折叠 要创建代码区域,请执行以下操作:
{$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重新启用折叠
重新启用折叠时,使用区域折叠的内容将保持折叠状态
资料来源:
我希望这对您有所帮助。非常感谢您的回复。然而,在Delphi2010中,选择文本的一部分并对其进行格式化仍然会打开其他代码块。GExperts代码格式化程序也是如此。它适用于哪个版本的Delphi?