Delphi自动格式化源代码会破坏匿名过程

6

昨天我在Delphi中发现了格式化源代码的功能,这为我节省了很多时间。

但是,我发现它会破坏匿名过程的布局。有没有设置可以改善这个结果呢?

例如,如果我有以下代码:

procedure TServerThread.cbUpdateStreamProgBar(Precentage: Integer);
begin
  Synchronize(
    procedure
    begin
      FrmMain.StreamProgressBar.StepBy(Precentage);
    end);
end;

在我自动格式化源代码后,它会被折叠成如下的样子:

procedure TServerThread.cbUpdateStreamProgBar(Precentage: Integer);
begin
  Synchronize( procedure begin FrmMain.StreamProgressBar.StepBy
    (Precentage); end);
end;

我该如何避免这种情况发生?

1
我不确定这是否可能,因为有许多语言特性是IDE编辑器并不真正“了解”的,但请等待其他人回答,我也很感兴趣...不要忘记在这个问题中添加Delphi版本标签。 - user497849
1
@ComputerSaysNo 感谢您的支持,我本人真的希望有解决方法。(我只是希望不要使用第三方工具) - user1803300
2
@SirRufo 不,它已经存在很久了。 - David Heffernan
XE2源代码格式化工具可以正确格式化匿名方法。 - iMan Biglari
1
我发现XE2(包括所有更新并使用32/64位的VCL)非常稳定。单元作用域名称易于处理,没有任何问题。 - LU RD
显示剩余7条评论
1个回答

2
请注意评论中的提示,您需要升级到更新版本的Delphi。 XE2自带的自动源代码格式化程序适用于匿名方法。
作为替代方案,您可以尝试使用实验性GExperts IDE插件。如果无法正确格式化,请添加自己的样式源代码。
请参见Delphi代码格式化程序
更新:想到一个解决办法,虽然有点繁琐。 通过选择源代码的部分,按下ctrl+D即可仅格式化所选部分。

是的,不幸的是这是 Delphi XE 代码格式化程序中已知的错误,除非放弃 XE 并升级到 XE2 或 XE3,否则将无法修复。 - Warren P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接