gpt4 book ai didi

c++ - 如何在 clang 格式的新行中控制 lessless 的对齐方式

转载 作者:行者123 更新时间:2023-11-28 01:34:27 24 4
gpt4 key购买 nike

clang-format 默认格式化如下代码:

void func() {
return some_func(some_variables)
<< "aaaaaaaaaaaaaaasssssssssssssssaaaaaaaaaaaaaaaaaa"
<< "asdaaasssssssss";
}

但是,我希望 clang-format 可以对齐 <<默认缩进宽度(8 个空格),例如

void func() {
return some_func(some_variables)
<< "aaaaaaaaaaaaaaasssssssssssssssaaaaaaaaaaaaaaaaaa"
<< "asdaaasssssssss";
}

我该怎么做?

最佳答案

clang 格式 AlignOperands在这种情况下选项是相关的。这是来自 doc 的描述:

AlignOperands (bool)
If true, horizontally align operands of binary and ternary expressions.
Specifically, this aligns operands of a single expression that needs to be split over multiple lines.

AlignOperands 的默认值选项是 false .在您的示例中,clang-format 的结果是 <<some_func 对齐, 就好像 AlignOperands设置为 true :

void func() {
return some_func(some_variables)
<< "aaaaaaaaaaaaaaasssssssssssssssaaaaaaaaaaaaaaaaaa"
<< "asdaaasssssssss";
}

如果未明确设置,此选项可能由某些预定义样式设置,例如 LLVM 样式 (--style=llvm)。

拥有 <<根据定义的缩进级别缩进,确保 AlignOperands设置为 false .例如,对于 IndentWidth: 4 ,预期结果将是:

void func() {
return some_func(some_variables)
<< "aaaaaaaaaaaaaaasssssssssssssssaaaaaaaaaaaaaaaaaa"
<< "asdaaasssssssss";
}

最新的 clang 格式 AFAICT 无法实现预期结果的精确对齐,其中第 2 行缩进 2 个空格,第 3 行和第 4 行缩进 8 个空格。

关于c++ - 如何在 clang 格式的新行中控制 lessless 的对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955660/

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