Don't try to do a hanging ident after assignments.

Before:
bool aaaa = aaaaaaaaaaa(
                aaaaaaaaaaaaaaaaa);

After:
bool aaaa = aaaaaaaaaaa(
    aaaaaaaaaaaaaaaaa);

The other indentation was a nice attempt but doesn't work in many cases.
Not sure what the right long term solution is as the "After: " is still
not nice. We either need to figure out what to do in the cases where it
"doesn't work" or come up with a third solution, e.g. falling back to:

bool aaaa =
    aaaaaaaaaaa(
        aaaaaaaaaaaaaaaaa);

which should always work and nicely highlight the structure.

llvm-svn: 173268
This commit is contained in:
Daniel Jasper 2013-01-23 15:55:19 +00:00
parent c4231cc9b3
commit 1565eb3e38
2 changed files with 4 additions and 8 deletions

View File

@ -596,12 +596,9 @@ private:
Current.isNot(tok::comment))
State.Stack[ParenLevel].HasMultiParameterLine = true;
// Top-level spaces that are not part of assignments are exempt as that
// mostly leads to better results.
// Top-level spaces are exempt as that mostly leads to better results.
State.Column += Spaces;
if (Spaces > 0 &&
(ParenLevel != 0 || getPrecedence(Previous) == prec::Assignment))
if (Spaces > 0 && ParenLevel != 0)
State.Stack[ParenLevel].LastSpace = State.Column;
}

View File

@ -1040,9 +1040,8 @@ TEST_F(FormatTest, BreaksAfterAssignments) {
" TTI.getMemoryOpCost(I->getOpcode(), VectorTy, SI->getAlignment(),\n"
" SI->getPointerAddressSpaceee());\n");
verifyFormat(
"CharSourceRange LineRange =\n"
" CharSourceRange::getTokenRange(Line.Tokens.front().Tok.getLoc(),\n"
" Line.Tokens.back().Tok.getLoc());");
"CharSourceRange LineRange = CharSourceRange::getTokenRange(\n"
" Line.Tokens.front().Tok.getLo(), Line.Tokens.back().Tok.getLoc());");
}
TEST_F(FormatTest, AlignsAfterAssignments) {