如何使clang格式在'<<'和'>>'运算符处中断?
我尝试将BreakBeforeBinaryOperators设置为All,但这似乎没有什么区别。
我希望代码的格式如下:
in >> a
>> b
>> c;
代替
in >> a >> b >> c;
答案 0 :(得分:2)
要实现此目的,您需要两个样式设置:
BreakBeforeBinaryOperators: All
ColumnLimit: 0
或者,将样式设置为预定义的WebKit
样式,这将为您设置这两种样式设置。
列限制为0表示没有列限制。在这种情况下, clang格式将尊重输入中的换行决策 声明,除非它们与其他规则相抵触。
这不是一个很好的解决方案,原因有几个:
如文档所述,clang格式将尊重您开始时的换行符。但是,如果还没有换行符,则不会添加换行符。因此,行in >> a >> b >> c;
不会分成几行。
输出未将第一行的>>
与后续行的>>
对齐。它只是以通常的续行量缩进。例如,如果您的常规缩进为4,则将得到:
in >> a
>> b
>> c;
这实际上有点奇怪,因为如果运算符为<<
,则clang-format会将所有三个运算符排列在一起。
您可能并且可能确实希望将ColumnLimit
设置为80之类的值,以便其他行在合理的位置断开。
但这似乎是使用clang格式可以做到的最好的方法。
我已经使用clang格式6.0.0进行了测试,但是我相信较新的版本会起到类似的作用,并且我看不到任何看起来有帮助的新样式选项。