Improve formatting of builder-type calls.
authorDaniel Jasper <djasper@google.com>
Mon, 18 Feb 2013 13:24:21 +0000 (13:24 +0000)
committerDaniel Jasper <djasper@google.com>
Mon, 18 Feb 2013 13:24:21 +0000 (13:24 +0000)
Before:
aaaaaaa->aaaaaaa->aaaaaaaaaaaaaaaa(
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)->aaaaaaaa(aaaaaaaaaaaaaaa);

After:
aaaaaaa->aaaaaaa
    ->aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
    ->aaaaaaaa(aaaaaaaaaaaaaaa);

llvm-svn: 175441

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

index 19582f2..92c3f1d 100644 (file)
@@ -874,7 +874,7 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line,
     return 5;
 
   if (Right.is(tok::arrow) || Right.is(tok::period)) {
-    if (Left.is(tok::r_paren) && Line.Type == LT_BuilderTypeCall)
+    if (Line.Type == LT_BuilderTypeCall)
       return 5; // Should be smaller than breaking at a nested comma.
     if ((Left.is(tok::r_paren) || Left.is(tok::r_square)) &&
         Left.MatchingParen && Left.MatchingParen->ParameterCount > 0)
index 90196af..d69b95e 100644 (file)
@@ -1255,6 +1255,10 @@ TEST_F(FormatTest, FormatsBuilderPattern) {
 
   verifyFormat("return aaaaaaaaaaaaaaaaa->aaaaa().aaaaaaaaaaaaa().aaaaaa() <\n"
                "       aaaaaaaaaaaaaaaaaaa->aaaaa().aaaaaaaaaaaaa().aaaaaa();");
+  verifyFormat(
+      "aaaaaaa->aaaaaaa\n"
+      "    ->aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
+      "    ->aaaaaaaa(aaaaaaaaaaaaaaa);");
 }
 
 TEST_F(FormatTest, DoesNotBreakTrailingAnnotation) {