新行上的 clang 格式右括号

clang-format closing bracket on a new line

本文关键字:格式 clang 新行      更新时间:2023-10-16

我的代码看起来像这样:

EXPECT_EQ(
subsystem->previousTouchscreenState,
expectedTouchscreenState
);

当我运行clang-format时,它会将代码片段重新格式化为如下所示:

EXPECT_EQ(
subsystem->previousTouchscreenState,
expectedTouchscreenState );

这是非常违反直觉的;我希望我的多行函数调用(尽管在这种情况下EXPECT_EQ是一个宏(将右圆括号放在自己的行上,缩进到函数名称的级别,就像在第一个片段中一样。

我如何使用clang-format完成此操作?

非常感谢。

我希望

我的多行函数调用(尽管在这种情况下EXPECT_EQ是一个宏(在其自己的行上具有右圆括号,缩进到函数名称的级别,就像在第一个代码段中一样。

如何使用 clang 格式实现此目的?

该选项似乎尚未添加;要么等待,要么参与clang开源项目。

编辑: 正如Catskul,DCzajkowski和Dwayne在评论中指出的那样: https://reviews.llvm.org/D109557 被接受

BAS_BlockIndent (在配置中:BlockIndent( 总是在 打开括号,如果参数不适合一行。关闭 括号将放在新行上。例如:

您可以使用AlignAfterOpenBracket: BlockIndent

这里有更多信息:https://clang.llvm.org/docs/ClangFormatStyleOptions.html#alignafteropenbracket

我找到了一个解决方法。如果在最后一个参数的末尾添加注释,则 clang-format(或任何工具(不应向后折叠右括号。

EXPECT_EQ(
subsystem->previousTouchscreenState,
expectedTouchscreenState //
);