如何以clang格式控制三元运算符的缩进?我想要普通的延续,例如。
int foobar = bar ? a
: b;
相反,我得到了运算符的对齐
int foobar = bar ? a
: b;
我已经有了AlignOperands:false 有什么想法吗?
(完整选项:-style ='{BasedOnStyle:LLVM,TabWidth:4,IndentWidth:4,ContinuationIndentWidth:8,UseTab:Always,AlignAfterOpenBracket:false,BreakBeforeBinaryOperators:All,AlwaysBreakTemplateDeclarations:true,AlignOperands:false,ColumnLimit: 120}')
答案 0 :(得分:1)
我相信https://reviews.llvm.org/D50078如果合并可以解决此问题。
答案 1 :(得分:0)
如果您想看中我可以推荐这段代码。
int a = 10;
int b = 20;
bool flag = true;
int c = \
flag ?
a \
: b;\
std::cout << c << "\n";
或者,您可以选择这种方式:
链接多个三元运算符时,例如就像if / else-if / else-if /.../ else序列,clang格式将继续对齐冒号 带问号,这会增加每个的缩进 有条件的:
int a = condition1 ? result1
: condition2 ? result2
: condition3 ? result3
: result4;
此补丁可检测到这种情况(例如,在假分支中使用的条件 另一种条件),以避免在这种情况下缩进:
int a = condition1 ? result1
: condition2 ? result2
: condition3 ? result3
: result4;
当BreakBeforeTernaryOperators为false时,其格式如下:
int a = condition1 ? result1 :
condition2 ? result2 :
conditino3 ? result3 :
result4;