我正在使用clang-format和一个相当小的配置文件,我对这些选项并不是很熟悉.为了这个问题,请考虑这段未格式化的代码:
int msgResult = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, MB_STYLE_ERROR);
Run Code Online (Sandbox Code Playgroud)
当我在这个片段上运行clang-format时,我明白了
int msgResult
= ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE, MB_STYLE_ERROR);
Run Code Online (Sandbox Code Playgroud)
但我更喜欢
int msgResult = ShowMBox(R_MESSAGE, msgText, MB_OK_ENABLE | MB_CANCEL_ENABLE,
MB_STYLE_ERROR);
Run Code Online (Sandbox Code Playgroud)
有没有办法强制执行不破坏=,或者至少不愿意破坏?
我相信您想要这两种风格选择:
BinPackArguments: true
AlignAfterOpenBracket: Align
Run Code Online (Sandbox Code Playgroud)
如果没有BinPackArguments, clang-format 将尝试将所有函数参数放在一行上,或者如果不能,则每行放置一个函数参数。大多数预定义样式已设置BinPackArguments为true,但Mozilla样式并未设置。
如果没有AlignAfterOpenBracket设置为Align,clang-format 有时会更愿意将所有参数放在第二行,而不是仅仅将一个与其他参数不对齐的参数放在第二行。大多数预定义样式已设置AlignAfterOpenBracket为Align,但WebKit样式并未设置。
有关这些设置的更多详细信息,请参阅文档。
我的测试是使用 clang-format 6.0.0 完成的。也许您的早期版本不支持所有这些。