如何通过clang-format实现控制语句条件的括号内换行排版?
实现目标clang-format样式的方法
要让clang-format输出你想要的控制语句条件格式,关键是配置AlignAfterOpenBracket选项,配合其他相关设置即可实现。
所需配置项
在你的.clang-format配置文件中添加或修改以下内容:
AlignAfterOpenBracket: AlwaysBreak BreakBeforeBinaryOperators: NonAssignment # 若想让运算符在行首,可改为All BraceWrapping: AfterControlStatement: true AllowShortIfStatementsOnASingleLine: Never
应用后的效果
配置生效后,clang-format会将你的代码格式化为:
if ( some_library_prefix_long_contrived_example_function(foo, bar, baz) != 12345 && x > 10 ) { x = 10; do_something(x); }
关键选项说明
AlignAfterOpenBracket: AlwaysBreak:强制左括号(后的内容换行,后续每行对齐到左括号的位置,这是实现括号内换行的核心选项。BreakBeforeBinaryOperators: NonAssignment:控制二元运算符的换行位置,设为NonAssignment会让逻辑运算符(如&&)留在行尾;若希望运算符在行首,可改为All。BraceWrapping: AfterControlStatement: true:让if语句的大括号单独占一行,匹配示例中的格式。AllowShortIfStatementsOnASingleLine: Never:避免短if语句被压缩到一行,确保格式统一。
内容的提问来源于stack exchange,提问作者Josh Brobst
相关产品推荐
相关产品推荐

