新行上的clang格式右括号
Posted
技术标签:
【中文标题】新行上的clang格式右括号【英文标题】:clang-format closing bracket on a new line 【发布时间】:2019-02-09 00:03:21 【问题描述】:我的代码如下所示:
EXPECT_EQ(
subsystem->previousTouchscreenState,
expectedTouchscreenState
);
当我运行 clang-format
时,它会将 sn-p 重新格式化为如下所示:
EXPECT_EQ(
subsystem->previousTouchscreenState,
expectedTouchscreenState );
这很违反直觉;我希望我的多行函数调用(尽管 EXPECT_EQ
在这种情况下是一个宏)在其自己的行上有右圆括号,缩进到函数名称的级别,因为它在第一个sn-p。
如何使用clang-format
完成此操作?
非常感谢。
【问题讨论】:
你找到答案了吗? 看起来他们将来会添加它reviews.llvm.org/D33029 @devalone 为什么不添加这个作为答案? @eike *可以添加。我不认为这是一个答案。 这能回答你的问题吗? Get clang format to put closing parenthesis of multiline function calls on separate lines? 【参考方案1】:我希望我的多行函数调用(尽管在这种情况下 EXPECT_EQ 是一个宏)在其自己的行上有右圆括号,缩进到函数名称的级别,就像它在第一个sn-p。
如何使用 clang-format 完成此任务?
该选项似乎尚未添加;要么等待,要么参与 clang 开源项目。
【讨论】:
警告,clang 格式以无法通过的贡献标准而闻名:clang.llvm.org/docs/… 这样的选项已被开发和审查,但仍悬而未决:reviews.llvm.org/D33029 这里有一个有效的 PR 已被接受:reviews.llvm.org/D109557【参考方案2】:我找到了一种解决方法。如果您在最后一个参数的末尾添加注释,clang-format(或任何工具)不应折回右括号。
EXPECT_EQ(
subsystem->previousTouchscreenState,
expectedTouchscreenState //
);
【讨论】:
以上是关于新行上的clang格式右括号的主要内容,如果未能解决你的问题,请参考以下文章
如何在打开函数的大括号之前使 clang-format 添加新行?
反正有没有让 VS Code 在 C# 的新行上自动格式化大括号?
Clang-format 语法在自己的行上获取初始化程序左大括号