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。