From: Daniel Jasper Date: Sat, 4 Apr 2015 07:56:55 +0000 (+0000) Subject: clang-format: [JS] Understand object literals with only methods. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7295dfc056d5977d22e5d47615b25688341c36db;p=clang clang-format: [JS] Understand object literals with only methods. 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 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index e0da80c2d9..25c309a9f9 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -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()) diff --git a/unittests/Format/FormatTestJS.cpp b/unittests/Format/FormatTestJS.cpp index 00744728dd..35727eb686 100644 --- a/unittests/Format/FormatTestJS.cpp +++ b/unittests/Format/FormatTestJS.cpp @@ -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) {