如何控制 clang 格式新行中 lessless 的对齐方式



clang 格式默认格式化以下代码,如下所示:

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

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

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

我该怎么做?

在这种情况下,clang 格式的AlignOperands选项是相关的。以下是文档中的描述:

对齐操作数(布尔值)
如果为 true,则水平对齐二进制和三元表达式的操作数。
具体来说,这会对齐需要拆分为多行的单个表达式的操作数。

AlignOperands选项的默认值为false。在您的示例中,clang 格式的结果是<<对齐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";
}

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

最新更新