clang-format: [JS] More aggressively keep array literals on one line.
authorDaniel Jasper <djasper@google.com>
Wed, 3 Jun 2015 08:57:36 +0000 (08:57 +0000)
committerDaniel Jasper <djasper@google.com>
Wed, 3 Jun 2015 08:57:36 +0000 (08:57 +0000)
Before:
  var aaaaa: List<SomeThing> = [
    new SomeThingAAAAAAAAAAAA(),
    new SomeThingBBBBBBBBB()
  ];

After:
  var aaaaa: List<SomeThing> =
      [new SomeThingAAAAAAAAAAAA(), new SomeThingBBBBBBBBB()];

llvm-svn: 238909

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

index 6b59cb3..993eb1d 100644 (file)
@@ -1627,7 +1627,8 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line,
     // Slightly prefer formatting local lambda definitions like functions.
     if (Right.is(TT_LambdaLSquare) && Left.is(tok::equal))
       return 50;
-    if (!Right.isOneOf(TT_ObjCMethodExpr, TT_LambdaLSquare))
+    if (!Right.isOneOf(TT_ObjCMethodExpr, TT_LambdaLSquare,
+                       TT_ArrayInitializerLSquare))
       return 500;
   }
 
index 3ed3cde..a64e1d0 100644 (file)
@@ -248,10 +248,9 @@ TEST_F(FormatTestJS, FormatsFreestandingFunctions) {
 }
 
 TEST_F(FormatTestJS, ArrayLiterals) {
-  verifyFormat("var aaaaa: List<SomeThing> = [\n"
-               "  new SomeThingAAAAAAAAAAAA(),\n"
-               "  new SomeThingBBBBBBBBB()\n"
-               "];");
+  verifyFormat(
+      "var aaaaa: List<SomeThing> =\n"
+      "    [new SomeThingAAAAAAAAAAAA(), new SomeThingBBBBBBBBB()];");
   verifyFormat("return [\n"
                "  aaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
                "  bbbbbbbbbbbbbbbbbbbbbbbbbbb,\n"