6

我正在使用带有相当小的配置文件的 clang 格式,而且我对这些选项不是很熟悉。为了这个问题,考虑这段未格式化的代码:

int msgResult = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, MB_STYLE_ERROR);

当我在这个片段上运行 clang-format 时,我得到

int msgResult
    = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, MB_STYLE_ERROR);

但我更喜欢

int msgResult = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, 
                         MB_STYLE_ERROR);

有没有办法强制在 之后不中断=,或者至少不喜欢?

4

1 回答 1

0

我相信你想要这两种风格选择:

BinPackArguments: true
AlignAfterOpenBracket: Align

如果没有BinPackArguments,clang-format 将尝试将所有函数参数放在一行,或者如果不能,则每行放置一个函数参数。大多数预定义样式已设置BinPackArgumentstrue,但Mozilla样式未设置。

如果不AlignAfterOpenBracket设置为Align,clang-format 有时会更喜欢将所有参数放在第二行,而不是只放置一个不与其他参数对齐的参数。大多数预定义样式已设置AlignAfterOpenBracketAlign,但WebKit样式未设置。

有关这些设置的更多详细信息,请参阅文档

我的测试是使用 clang-format 6.0.0 完成的。也许您有一个不支持所有这些的早期版本。

于 2020-08-09T07:23:57.080 回答