如何让clang格式的c++长循环变成三行
How to let clang-format format c++ long for loop into three lines?
我希望循环的任何长都能自动分成三行;类似:
for (auto origin = backup_to_origins[peer].begin();
origin != backup_to_origins[peer].end();
origin++)
但谷歌风格的clang格式将其格式化为两行:
for (auto origin = backup_to_origins[peer].begin();
origin != backup_to_origins[peer].end(); origin++)
BinPackArguments
选项将每个for循环拆分为三行,包括短行,这不是我想要的。
根据行宽度,我只希望占用大于X
的字符量的循环被分解为三行。<=的循环X
个字符,它们可以停留在一行上。我怎样才能做到这一点?
我不知道BinPackArguments
为什么不适合您。也许你还有其他风格的选择?也许clang格式的早期(或更晚?(版本的工作方式不同?我使用clang格式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
样式选项控制,该选项通常默认为80。
有关这些样式选项的更多详细信息,请参阅文档。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 在更改for循环的第三部分后,未使用for循环结果
- C++一会儿循环读到地图上 2 行?
- 使用循环将多行写入.txt
- 删除功能不适用于串行通信后多个循环中的多个实例
- 循环仅对第一行正常工作.其他行不受 for 的影响
- 有时打印一行,有时打印三行
- 使用基于数组和范围的 For 循环替换一些基本代码行
- 毕达哥拉斯三重嵌套循环误解
- 如何在循环中打印两个相邻的行,同时在 c++ 中将它们都保留在一行中
- 如何使用循环结束 c++ 上的行
- 一个 2D 数组,并按行存储值.第一个循环用于行索引,第二个循环用于列索引
- cin语句在循环的第三次迭代中被跳过
- 如何让clang格式的c++长循环变成三行
- 如何制作 arduino 串行循环(连续接收数字)
- 虽然第三次循环循环,尽管在我眼中没有满足它的条件,因此打印了一个空字符串
- 我可以将第三行的节点更改为node_new还是其他
- 为什么这个C++程序适用于第一行输入,而不适用于第二行或第三行
- 逐行循环遍历char数组的最佳方式
- 在使用模拟命令行循环的API时,如何重定向CLIPS的输入和输出?