c++ 新行上的clang格式右括号

eulz3vhy  于 2022-12-01  发布在  其他
关注(0)|答案(3)|浏览(196)

我的代码如下所示:

EXPECT_EQ(
    subsystem->previousTouchscreenState,
    expectedTouchscreenState
);

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

EXPECT_EQ(
    subsystem->previousTouchscreenState,
    expectedTouchscreenState );

这是相当违反直觉的;我希望我的多行函数调用(尽管EXPECT_EQ在本例中是一个宏)在它自己的行上有结束圆括号,缩进到函数名的级别,就像它在第一个代码片段中一样。
如何使用clang-format完成此操作?
多谢了。

xxls0lw8

xxls0lw81#

我希望我的多行函数调用(尽管在本例中EXPECT_EQ是一个宏)在它自己的行上有结束圆括号,缩进到函数名的级别,就像它在第一个代码片段中一样。
如何使用clang-format完成此操作?
似乎还没有增加这一选项;要么等待,要么参与clang开源项目。
编辑:正如Catskul、DCzajkowski和Dwayne在评论中所指出的:已接受https://reviews.llvm.org/D109557

k2arahey

k2arahey2#

我找到了一个变通方法,如果你在最后一个参数的末尾加上一个注解,clang-format(或任何工具)都不应该把右括号折回去。

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

zour9fqk3#

BAS_BlockIndent(在配置中:BlockIndent)如果参数在一行中放不下,则始终在左括号后换行。右括号将放在新的一行中。例如:
您可以使用AlignAfterOpenBracket: BlockIndent
更多信息请访问:https://clang.llvm.org/docs/ClangFormatStyleOptions.html📚

相关问题