Clang-format 10.0 与 5.0 const 成员函数的格式不同

Clang-format 10.0 vs. 5.0 const member fuction is formated differently

我们正在将我们的 clang-format 从 5.0 更新到 10.0(是的,我知道这是一个很大的飞跃:-)) 文件 .clang-format 保持不变。

在 5.0 版本中,我们得到这样的格式

virtual Composite *copy_composite_tree(Composite *parent  // parent of copied tree
                                      ) const;

在 10.0 版本中,这变成了

virtual Composite *copy_composite_tree(Composite *parent  // parent of copied tree
) const;

是否有保留 5.0 格式样式的选项?

我假设这只是由括号对齐控制,就像其他所有内容一样,引用 clang 文档:

AlignAfterOpenBracket (BracketAlignmentStyle) 如果 true,则在左括号后水平对齐参数。 这适用于圆括号(圆括号)、尖括号和方括号。

可能的值:

BAS_Align(在配置中:Align)在左括号上对齐参数,例如:

someLongFunction(argument1,
                 argument2);

BAS_DontAlign(在配置中:DontAlign)不对齐,而是使用ContinuationIndentWidth,例如:

someLongFunction(argument1,
    argument2);

BAS_AlwaysBreak(在配置中:AlwaysBreak)如果参数不适合单行,则始终在左括号后中断,例如:

someLongFunction(
    argument1, argument2);

我认为这是一个错误,它是在 clang-format 9.0.1 中引入的,因为所有内置样式,例如 LLVM,Google,...都表现出非常相同的行为。

我向 llvm 项目报告了这个错误。

https://bugs.llvm.org/show_bug.cgi?id=46509