forked from OSchip/llvm-project
Improve indentation of builder type calls.
In builder-type calls, it can be very confusing to just indent parameters from the start of the line. Instead, indent 4 from the correct function call. Before: aaaaaaaaaaaaaaaaaaa()->aaaaaa(bbbbb)->aaaaaaaaaaaaaaaaaaa( // break aaaaaaaaaaaaaa); aaaaaaaaaaaaaaaaaaaaaaa *aaaaaaaaa = aaaaaa->aaaaaaaaaaaa()->aaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) ->aaaaaaaaaaaaaaaaa(); After: aaaaaaaaaaaaaaaaaaa()->aaaaaa(bbbbb)->aaaaaaaaaaaaaaaaaaa( // break aaaaaaaaaaaaaa); aaaaaaaaaaaaaaaaaaaaaaa *aaaaaaaaa = aaaaaa->aaaaaaaaaaaa() ->aaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) ->aaaaaaaaaaaaaaaaa(); llvm-svn: 175444
This commit is contained in:
parent
4c1602b5c9
commit
e53beb2647
|
@ -549,6 +549,9 @@ private:
|
|||
// If this function has multiple parameters, indent nested calls from
|
||||
// the start of the first parameter.
|
||||
State.Stack.back().LastSpace = State.Column;
|
||||
else if ((Current.is(tok::period) || Current.is(tok::arrow)) &&
|
||||
Line.Type == LT_BuilderTypeCall && State.ParenLevel == 0)
|
||||
State.Stack.back().LastSpace = State.Column;
|
||||
}
|
||||
|
||||
// If we break after an {, we should also break before the corresponding }.
|
||||
|
|
|
@ -471,8 +471,7 @@ public:
|
|||
if (!consumeToken())
|
||||
return LT_Invalid;
|
||||
if (getPrecedence(*TheToken) > prec::Assignment &&
|
||||
TheToken->Type != TT_TemplateOpener &&
|
||||
TheToken->Type != TT_TemplateCloser)
|
||||
TheToken->Type == TT_BinaryOperator)
|
||||
CanBeBuilderTypeStmt = false;
|
||||
}
|
||||
if (KeywordVirtualFound)
|
||||
|
|
|
@ -1259,6 +1259,14 @@ TEST_F(FormatTest, FormatsBuilderPattern) {
|
|||
"aaaaaaa->aaaaaaa\n"
|
||||
" ->aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
|
||||
" ->aaaaaaaa(aaaaaaaaaaaaaaa);");
|
||||
verifyFormat(
|
||||
"aaaaaaaaaaaaaaaaaaa()->aaaaaa(bbbbb)->aaaaaaaaaaaaaaaaaaa( // break\n"
|
||||
" aaaaaaaaaaaaaa);");
|
||||
verifyFormat(
|
||||
"aaaaaaaaaaaaaaaaaaaaaaa *aaaaaaaaa = aaaaaa->aaaaaaaaaaaa()\n"
|
||||
" ->aaaaaaaaaaaaaaaa(\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
|
||||
" ->aaaaaaaaaaaaaaaaa();");
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, DoesNotBreakTrailingAnnotation) {
|
||||
|
|
Loading…
Reference in New Issue