forked from OSchip/llvm-project
clang-format: Improve line breaks at function calls.
Before: EXPECT_CALL(SomeObject, SomeFunction(Parameter)).Times(2).WillRepeatedly( Return(SomeValue)); After: EXPECT_CALL(SomeObject, SomeFunction(Parameter)) .Times(2) .WillRepeatedly(Return(SomeValue)); llvm-svn: 217687
This commit is contained in:
parent
e9ead73cdb
commit
d6f17d83a3
|
@ -302,6 +302,18 @@ void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun,
|
|||
if (startsSegmentOfBuilderTypeCall(Current))
|
||||
State.Stack.back().ContainsUnwrappedBuilder = true;
|
||||
|
||||
if (Current.isMemberAccess() && Previous.is(tok::r_paren) &&
|
||||
(Previous.MatchingParen &&
|
||||
(Previous.TotalLength - Previous.MatchingParen->TotalLength > 10))) {
|
||||
// If there is a function call with long parameters, break before trailing
|
||||
// calls. This prevents things like:
|
||||
// EXPECT_CALL(SomeLongParameter).Times(
|
||||
// 2);
|
||||
// We don't want to do this for short parameters as they can just be
|
||||
// indexes.
|
||||
State.Stack.back().NoLineBreak = true;
|
||||
}
|
||||
|
||||
State.Column += Spaces;
|
||||
if (Current.isNot(tok::comment) && Previous.is(tok::l_paren) &&
|
||||
Previous.Previous && Previous.Previous->isOneOf(tok::kw_if, tok::kw_for))
|
||||
|
|
|
@ -4452,6 +4452,11 @@ TEST_F(FormatTest, WrapsAtFunctionCallsIfNecessary) {
|
|||
|
||||
verifyFormat("EXPECT_CALL(SomeObject, SomeFunction(Parameter))\n"
|
||||
" .WillRepeatedly(Return(SomeValue));");
|
||||
verifyFormat("void f() {\n"
|
||||
" EXPECT_CALL(SomeObject, SomeFunction(Parameter))\n"
|
||||
" .Times(2)\n"
|
||||
" .WillRepeatedly(Return(SomeValue));\n"
|
||||
"}");
|
||||
verifyFormat("SomeMap[std::pair(aaaaaaaaaaaa, bbbbbbbbbbbbbbb)].insert(\n"
|
||||
" ccccccccccccccccccccccc);");
|
||||
verifyFormat("aaaaa(aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
|
||||
|
|
Loading…
Reference in New Issue