Delphi 2010:有人知道正确的设置方法使格式化程序不折叠匿名方法吗?

3

默认情况下,Delphi 2010代码格式化程序将匿名方法折叠为一行。

有没有人找到了规避这个问题的设置?

原始代码:

procedure TUnit.AppendFinalization(const StringBuilder: TStringBuilder);
begin
  AppendMemberResults(StringBuilder,
    function(Member: TGeneratableInUnit): IStringListWrapper
    begin
      Result := Member.FinalizationText;
    end
  );
end;

procedure TUnit.AppendMemberResults(const StringBuilder: TStringBuilder; const GetMemberText: TFunc<TGeneratableInUnit, IStringListWrapper>);

格式化的代码:

procedure TUnit.AppendFinalization(const StringBuilder: TStringBuilder);
begin
  AppendMemberResults(StringBuilder, function(Member: TGeneratableInUnit): IStringListWrapper begin Result := Member.FinalizationText; end);
end;

procedure TUnit.AppendMemberResults(const StringBuilder: TStringBuilder; const GetMemberText: TFunc<TGeneratableInUnit, IStringListWrapper>);

正如您所看到的,匿名方法正在格式化为一行。

我感觉我在这里缺少某种设置。


1
这看起来像是源代码格式化程序中的一个漏洞。匿名方法被视为普通参数。 - Toon Krijthe
1个回答

6

该问题已在Quality Central中记录为格式化程序错误:77547。


谢谢。我刚才看了一下http://qc.embarcadero.com/wc/qcmain.aspx?d=77547,你能否将我的格式问题添加到其中?因为我认为它们略有不同,如果他们只修复了一半,那就太遗憾了 :-) - Jeroen Wiert Pluimers
我不是那些可以编辑QC项目的高级专家,恐怕我无法帮忙。 - frogb
任何人都可以向QC报告添加评论,包括你们其中的任何一个。 - Rob Kennedy
但是过去我曾因在注释中添加有趣的内容而受到指责,因为显然当(如果)报告被提升到内部数据库以采取行动时,它们都会被剥离。我不知道这是否属实,但这就是为什么我没有建议添加注释。 - frogb
我确信你没有被“训斥”。那意味着有人真的对你生气并大声喊叫以摆正你的位置。你可能已经受到了警告。无论如何,在在评论中提供信息和不提供任何信息之间,选择评论。 - Rob Kennedy
此问题已在Delphi-XE2中修复。 - LU RD

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