gpt4 book ai didi

c++ - 如何让 clang-format 的c++ long for循环分成三行?

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

我希望任何长的 for 循环都能自动分成三行;喜欢:

    for (auto origin = backup_to_origins[peer].begin();
origin != backup_to_origins[peer].end();
origin++)

但是 google 风格的 clang-format 将其格式化为两行:
    for (auto origin = backup_to_origins[peer].begin();
origin != backup_to_origins[peer].end(); origin++)
BinPackArguments option 将每个 for 循环分成三行,包括短行,这不是我想要的。

基于线宽,我只想要占用大于 X 的循环要分成三行的字符数。 <= X 的循环字符,它们可以保持在一行。我怎样才能做到这一点?

最佳答案

我不知道为什么 BinPackArguments没有为你工作。也许您设置了其他样式选项?也许更早(或更晚?)版本的 clang-format 工作方式不同?我使用了 clang-format 6.0.0 来验证这个答案中的行为。
我完全明白你的要求:

BinPackArguments: false
例如,给定包含以下内容的 myfile.cpp:
int f()
{
for (auto origin = backup_to_origins[peer].begin();
origin != backup_to_origins[peer].end();
origin++)
{
}
for (auto o = b.begin();
o != b.end();
o++)
{
}
}
命令行 clang-format -style='{BasedOnStyle: Google,BinPackArguments: false}' myfile.cpp产生这个输出:
int f() {
for (auto origin = backup_to_origins[peer].begin();
origin != backup_to_origins[peer].end();
origin++) {
}
for (auto o = b.begin(); o != b.end(); o++) {
}
}
线长 X您所指的是由 ColumnLimit控制的style 选项,通常默认为 80。
documentation有关这些样式选项的更多详细信息。

关于c++ - 如何让 clang-format 的c++ long for循环分成三行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51669556/

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