From 184336207dca3a844f8130aa4a04508029c45c19 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Wed, 1 Mar 2017 19:47:28 +0000 Subject: [PATCH] clang-format: [JS] Properly format object literals with shorthands. Before: return { a, b: 'b', c, }; After: return { a, b: 'b', c, }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@296664 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/TokenAnnotator.cpp | 7 ++++--- unittests/Format/FormatTestJS.cpp | 5 +++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 341421e222..42c92c4eca 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1517,13 +1517,14 @@ private: return prec::Conditional; if (NextNonComment && NextNonComment->is(tok::colon) && NextNonComment->is(TT_DictLiteral)) - return prec::Comma; + return prec::Assignment; + if (Current->is(TT_JsComputedPropertyName)) + return prec::Assignment; if (Current->is(TT_LambdaArrow)) return prec::Comma; if (Current->is(TT_JsFatArrow)) return prec::Assignment; - if (Current->isOneOf(tok::semi, TT_InlineASMColon, TT_SelectorName, - TT_JsComputedPropertyName) || + if (Current->isOneOf(tok::semi, TT_InlineASMColon, TT_SelectorName) || (Current->is(tok::comment) && NextNonComment && NextNonComment->is(TT_SelectorName))) return 0; diff --git a/unittests/Format/FormatTestJS.cpp b/unittests/Format/FormatTestJS.cpp index 88f081326d..f45ec7356b 100644 --- a/unittests/Format/FormatTestJS.cpp +++ b/unittests/Format/FormatTestJS.cpp @@ -278,6 +278,11 @@ TEST_F(FormatTestJS, ContainerLiterals) { " aaa,\n" " aaa,\n" "};"); + verifyFormat("return {\n" + " a,\n" + " b: 'b',\n" + " c,\n" + "};"); } TEST_F(FormatTestJS, MethodsInObjectLiterals) { -- 2.40.0