]> granicus.if.org Git - clang/commitdiff
clang-format: [JS] Understand object literals with only methods.
authorDaniel Jasper <djasper@google.com>
Sat, 4 Apr 2015 07:56:55 +0000 (07:56 +0000)
committerDaniel Jasper <djasper@google.com>
Sat, 4 Apr 2015 07:56:55 +0000 (07:56 +0000)
Before:
  let theObject = {someMethodName() {
    doTheThing();
    doTheOtherThing();
  },
                   someOtherMethodName() {
                     doSomething();
                     doSomethingElse();
                   }};

After:
  let theObject = {
    someMethodName() {
      doTheThing();
      doTheOtherThing();
    },
    someOtherMethodName() {
      doSomething();
      doSomethingElse();
    }
  };

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

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

index e0da80c2d99bcba7c81fc83c8984b229443b3e9e..25c309a9f99e645d013e78fd077c503c91b065ea 100644 (file)
@@ -342,7 +342,8 @@ private:
                Style.Language == FormatStyle::LK_Proto) &&
               Previous->is(tok::identifier))
             Previous->Type = TT_SelectorName;
-          if (CurrentToken->is(tok::colon))
+          if (CurrentToken->is(tok::colon) ||
+              Style.Language == FormatStyle::LK_JavaScript)
             Left->Type = TT_DictLiteral;
         }
         if (!consumeToken())
index 00744728ddbc2c952b8e876adfc523cfb5f8d5c1..35727eb686bbcd5956592711a471685eb83bc382 100644 (file)
@@ -163,6 +163,14 @@ TEST_F(FormatTestJS, MethodsInObjectLiterals) {
                "    doSomething(this.value + val);\n"
                "  }\n"
                "};");
+  verifyFormat("var o = {\n"
+               "  someMethod(val) {  // method\n"
+               "    doSomething(this.value + val);\n"
+               "  },\n"
+               "  someOtherMethod(val) {  // method\n"
+               "    doSomething(this.value + val);\n"
+               "  }\n"
+               "};");
 }
 
 TEST_F(FormatTestJS, SpacesInContainerLiterals) {