防止 clang 格式将多行 if 语句折叠为一行

Prevent clang-format from collapsing multi-line if statements into a single line

本文关键字:一行 折叠 if 格式 clang 防止 语句      更新时间:2023-10-16

使用默认设置的 clang 格式,执行以下操作:

if ((exprA) && 
    (exprB))

变成:

if ((exprA) && (exprB))

我试图防止将条件折叠成一条线,但没有成功。
目前有没有办法实现这一目标?

在 clang 格式的文档中,BreakBeforeBinaryOperators 参数似乎最接近我所追求的:

BreakBeforeBinaryOperators (BinaryOperatorStyle(
包装二进制运算符的方法。

  • BOS_None(配置中:None(在运算符之后中断。

但它似乎仅在需要包装(超出列限制(时才启动,这不是通常的情况。

根据Clang 10文档,您的请求可以完成。您必须对clang文件进行这两项更改

  1. BraceWrapping:设置AfterControlStatement: true.
  2. 后比设置ColumnLimit: 1
output -: if ((exprA) &&
              (exprB))

如果您有任何疑问,可以尝试一下 这里. 但问题是您的其他代码也会被格式化。

没有办法只拆分if ((exprA) && (exprB)).如果任何人都可以为此创建一个补丁,则可以做到这一点,但为此创建补丁并不容易。这需要大量的时间和精力。