clang-format: Don't force line breaks in ObjC calls with ColumnLimit 0.

Before:
  [self.x a:b c:d];

Got reformatted toi (with ColumnLimit set to 0):
  [self.x a:b
          c:d];

llvm-svn: 209114
This commit is contained in:
Daniel Jasper 2014-05-19 08:06:34 +00:00
parent 0dd5291e69
commit 7f0c517168
2 changed files with 22 additions and 9 deletions

View File

@ -739,7 +739,7 @@ unsigned ContinuationIndenter::moveStateToNextToken(LineState &State,
Current.PackingKind == PPK_Inconclusive)));
// If this '[' opens an ObjC call, determine whether all parameters fit
// into one line and put one per line if they don't.
if (Current.Type == TT_ObjCMethodExpr &&
if (Current.Type == TT_ObjCMethodExpr && Style.ColumnLimit != 0 &&
getLengthToMatchingParen(Current) + State.Column >
getColumnLimit(State))
BreakBeforeParameter = true;

View File

@ -8547,12 +8547,16 @@ TEST_F(FormatTest, FormatsWithWebKitStyle) {
Style));
// Keep empty and one-element array literals on a single line.
verifyFormat("NSArray* a = [[NSArray alloc] initWithArray:@[]\n"
" copyItems:YES];",
Style);
verifyFormat("NSArray* a = [[NSArray alloc] initWithArray:@[ @\"a\" ]\n"
" copyItems:YES];",
Style);
EXPECT_EQ("NSArray* a = [[NSArray alloc] initWithArray:@[]\n"
" copyItems:YES];",
format("NSArray*a=[[NSArray alloc] initWithArray:@[]\n"
"copyItems:YES];",
Style));
EXPECT_EQ("NSArray* a = [[NSArray alloc] initWithArray:@[ @\"a\" ]\n"
" copyItems:YES];",
format("NSArray*a=[[NSArray alloc]initWithArray:@[ @\"a\" ]\n"
" copyItems:YES];",
Style));
EXPECT_EQ("NSArray* a = [[NSArray alloc] initWithArray:@[\n"
" @\"a\",\n"
" @\"a\"\n"
@ -8564,10 +8568,19 @@ TEST_F(FormatTest, FormatsWithWebKitStyle) {
" ]\n"
" copyItems:YES];",
Style));
verifyFormat(
EXPECT_EQ(
"NSArray* a = [[NSArray alloc] initWithArray:@[ @\"a\", @\"a\" ]\n"
" copyItems:YES];",
Style);
format("NSArray* a = [[NSArray alloc] initWithArray:@[ @\"a\", @\"a\" ]\n"
" copyItems:YES];",
Style));
verifyFormat("[self.a b:c c:d];", Style);
EXPECT_EQ("[self.a b:c\n"
" c:d];",
format("[self.a b:c\n"
"c:d];",
Style));
}
TEST_F(FormatTest, FormatsLambdas) {