]> granicus.if.org Git - clang/commitdiff
clang-format: Improve r236597, Properly indent method calls without inputs.
authorDaniel Jasper <djasper@google.com>
Thu, 7 May 2015 14:19:59 +0000 (14:19 +0000)
committerDaniel Jasper <djasper@google.com>
Thu, 7 May 2015 14:19:59 +0000 (14:19 +0000)
Before:
  [aaaaaaaaaaaa(aaaaaa)
          aaaaaaaaaaaaaaaaaaaa];

After:
  [aaaaaaaaaaaa(aaaaaa)
      aaaaaaaaaaaaaaaaaaaa];

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@236730 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/ContinuationIndenter.cpp
lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp

index 430fe7723929a4c6a0c33a419a899f51c8052c7e..ee06bc6cb5b856b209cf0e227c63c8b1e4a05392 100644 (file)
@@ -584,9 +584,13 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) {
       return State.Stack.back().StartOfArraySubscripts;
     return ContinuationIndent;
   }
-  if (NextNonComment->is(TT_StartOfName) && NextNonComment->Next &&
-      NextNonComment->Next->is(TT_ObjCMethodExpr))
+
+  // This ensure that we correctly format ObjC methods calls without inputs,
+  // i.e. where the last element isn't selector like: [callee method];
+  if (NextNonComment->is(tok::identifier) && NextNonComment->FakeRParens == 0 &&
+      NextNonComment->Next && NextNonComment->Next->is(TT_ObjCMethodExpr))
     return State.Stack.back().Indent;
+
   if (NextNonComment->isOneOf(TT_StartOfName, TT_PointerOrReference) ||
       Previous.isOneOf(tok::coloncolon, tok::equal))
     return ContinuationIndent;
index 9f034eca3798a7b4e2c33bb72d4a27d0a16fa847..1079bef41e351372630249fbad265d3f0b4cc2ec 100644 (file)
@@ -49,7 +49,7 @@ private:
     ScopedContextCreator ContextCreator(*this, tok::less, 10);
 
     // If this angle is in the context of an expression, we need to be more
-    // hesitant to detect it as opening template parameters. 
+    // hesitant to detect it as opening template parameters.
     bool InExprContext = Contexts.back().IsExpression;
 
     Contexts.back().IsExpression = false;
index 4e33aa9da5534cf251e7f1a672da75564958508e..0995bb162a096d10c385f11f11cafed7a2368166 100644 (file)
@@ -7186,6 +7186,8 @@ TEST_F(FormatTest, FormatObjCMethodExpr) {
                "                hints:nil];");
   verifyFormat("[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
                "    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa];");
+  verifyFormat("[aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaa)\n"
+               "    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa];");
 
   verifyFormat(
       "scoped_nsobject<NSTextField> message(\n"