gpt4 book ai didi

c++ - 如何让 clang-format 在 << 和 >> 上中断

转载 作者:行者123 更新时间:2023-12-01 13:07:40 26 4
gpt4 key购买 nike

我怎样才能让 clang 格式在 '<<' 和 '>>' 运算符上中断?

我尝试将 BreakBeforeBinaryOperators 设置为 All,但这在这里似乎没有任何区别。

我希望我的代码格式如下:

in >> a
>> b
>> c;

代替
in >> a >> b >> c;

最佳答案

为此,您需要两个样式设置:

BreakBeforeBinaryOperators: All
ColumnLimit: 0
或者,将样式设置为预定义的 WebKit style,它将为您设置这两个样式设置。
documentation说:

A column limit of 0 means that there is no column limit. In this case,clang-format will respect the input’s line breaking decisions withinstatements unless they contradict other rules.


这不是一个很好的解决方案,原因如下:
  • 正如文档所说, clang-format 将尊重您开始时的换行符。但如果它们不在那里,它不会添加换行符。所以一行in >> a >> b >> c;不会被分成单独的行。
  • 输出不符合 >>第一行的 >>的后续行。它只是按通常的连续行数量缩进。例如,如果您的常规缩进是 4,您将得到:
    in >> a
    >> b
    >> c;
    这其实有点奇怪,因为如果操作符是<< , clang-format 将排列所有三个运算符。
  • 您可能并且可能确实想要 ColumnLimit设置为 80 之类的其他值,以便其他行在合理的位置中断。

  • 但这似乎是使用 clang-format 可以做到的最好的。
    我使用 clang-format 6.0.0 进行了测试,但我相信较新的版本会起到类似的作用,而且我没有看到任何看起来有帮助的新样式选项。

    关于c++ - 如何让 clang-format 在 << 和 >> 上中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56881048/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com