clang-format在if()while()for()之后添加{}语句

Phi*_*Phi 5 clang-format

我想知道,如果铛格式可以设置,以减少非compound_statement{ non-compound_statement; }iteration_statement.

statement
: labeled_statement
| compound_statement
| expression_statement
| selection_statement
| iteration_statement
| jump_statement
;
iteration_statement
: WHILE '(' expression ')' statement
| DO statement WHILE '(' expression ')' ';'
| FOR '(' expression_statement expression_statement ')' statement
| FOR '(' expression_statement expression_statement expression ')' statement
;
Run Code Online (Sandbox Code Playgroud)

输入:

if (exp) foo = 1;
Run Code Online (Sandbox Code Playgroud)

输出:

if (exp) { foo = 1; }
Run Code Online (Sandbox Code Playgroud)

然后美化师会根据需要缩进.

kam*_*aze 4

您想要做的事情超出了 clang-format 试图实现的范围:

  • clang-format 应该接触的唯一词汇元素是:空格、字符串文字和注释。从排序包含到删除多余括号的任何其他更改都不在此工具的范围内。

来源:http ://clang-developers.42468.n3.nabble.com/Design-clang-format-td3980439.html

然而 clang tidy 可以,功能标志被称为readability-braces-around-statements

来源:http ://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html