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

时间:2015-04-10 16:18:08

标签: delphi ide code-folding toolsapi

另请参阅此问题:How do I avoid expanding folded regions when I invoke the code formatter?

这不是骗局,因为我对使用ToolsApi解决问题很感兴趣。

当我按 CTRL + D 时,代码格式很好(主要是)
但我所有折叠的代码部分都展开了 有没有办法保持这些部分折叠。

如果没有,是否可以在格式化之前保存代码折叠信息,以便稍后恢复?
我正在考虑使用Open Tools api编写IDE-addin 我使用XE7,但所有具有源格式的版本都存在此问题。

可能的情况包括:

  • 记录和重播代码折叠(钩子elide调用)。
  • 仅允许格式化处理当前块(重新定义 CTRL + D 操作)。

1 个答案:

答案 0 :(得分: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重新启用折叠。 / p>

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

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

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