使用 clang-format 和默认设置,如下:
if ((exprA) &&
(exprB))
变成:
if ((exprA) && (exprB))
我试图防止将条件折叠成一行,但没有成功。
目前有办法实现这一点吗?
采用 clang 格式 documentation , BreakBeforeBinaryOperators
参数似乎最接近我所追求的:
BreakBeforeBinaryOperators (BinaryOperatorStyle)
The way to wrap binary operators.
- BOS_None (in configuration:
None
) Break after operators.
但它似乎只有在需要换行时才会起作用(超出列限制),这不是通常的情况。
最佳答案
根据Clang 10 document ,您的要求可以完成。您必须对 clang 文件进行这两项更改
- 在
BraceWrapping:
中设置AfterControlStatement:true
。 - 设置
ColumnLimit:1
之后
output -: if ((exprA) &&
(exprB))
您可以尝试这个:Here如果您有任何疑问。但问题是您的其他代码也会被格式化。
无法仅进行拆分 if ((exprA) && (exprB))
。如果任何人都可以为此创建补丁,那么就可以做到这一点,但为此创建补丁并不那么容易。这需要大量的时间和精力。
关于c++ - 防止 clang-format 将多行 if 语句折叠成单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48247489/