Clang 格式 10.0 与 5.0 常量成员函数的格式不同

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

本文关键字:格式 函数 成员 Clang 常量      更新时间:2023-10-16

我们正在将我们的 clang 格式从 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 格式 9.0.1 中引入的,因为所有内置样式,例如 LLVM、谷歌、...表现出完全相同的行为。

我向 llvm 项目报告了此错误。

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

我认为这就像其他所有内容一样由括号对齐方式控制,引用 clang 文档:

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

可能的值:

BAS_Align(配置中:对齐(对齐开括号上的参数,例如:

someLongFunction(argument1,
argument2);

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

someLongFunction(argument1,
argument2);

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

someLongFunction(
argument1, argument2);