State.IgnoreStackForComparison = false;
// The first token has already been indented and thus consumed.
- moveStateToNextToken(State, /*DryRun=*/false);
+ moveStateToNextToken(State, /*DryRun=*/false, /*Newline=*/false);
// If everything fits on a single line, just put it there.
unsigned ColumnLimit = Style.ColumnLimit;
}
}
- return moveStateToNextToken(State, DryRun) + ExtraPenalty;
+ return moveStateToNextToken(State, DryRun, Newline) + ExtraPenalty;
}
/// \brief Mark the next token as consumed in \p State and modify its stacks
/// accordingly.
- unsigned moveStateToNextToken(LineState &State, bool DryRun) {
+ unsigned moveStateToNextToken(LineState &State, bool DryRun, bool Newline) {
const FormatToken &Current = *State.NextToken;
assert(State.Stack.size());
State.NextToken = State.NextToken->Next;
+ if (!Newline && Style.AlwaysBreakBeforeMultilineStrings &&
+ Current.is(tok::string_literal))
+ return 0;
+
return breakProtrudingToken(Current, State, DryRun);
}
"rs\"",
getLLVMStyleWithColumns(20)));
+ // Verify that splitting the strings understands
+ // Style::AlwaysBreakBeforeMultilineStrings.
+ EXPECT_EQ("aaaaaaaaaaaa(aaaaaaaaaaaaa,\n"
+ " \"aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa \"\n"
+ " \"aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa\");",
+ format("aaaaaaaaaaaa(aaaaaaaaaaaaa, \"aaaaaaaaaaaaaaaaaaaaaa "
+ "aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa "
+ "aaaaaaaaaaaaaaaaaaaaaa\");",
+ getGoogleStyle()));
+
FormatStyle AlignLeft = getLLVMStyleWithColumns(12);
AlignLeft.AlignEscapedNewlinesLeft = true;
EXPECT_EQ(