From 286d410d2b459af100295b02d6a96335d64c8f91 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Mon, 4 Jan 2016 15:51:56 +0000 Subject: [PATCH] clang-format: [JS] Support ES6 exports of array literals. Before: export default[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb]; export default[]; After: export default [ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb ]; export default []; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256758 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/TokenAnnotator.cpp | 6 +++++- unittests/Format/FormatTestJS.cpp | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index da0fdb9170..635092dec3 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -289,7 +289,9 @@ private: (Parent && Parent->isOneOf(TT_BinaryOperator, tok::at, tok::comma, tok::l_paren, tok::l_square, tok::question, - tok::colon, tok::kw_return))) { + tok::colon, tok::kw_return, + // Should only be relevant to JavaScript: + tok::kw_default))) { Left->Type = TT_ArrayInitializerLSquare; } else { BindingIncrease = 10; @@ -1999,6 +2001,8 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line, if (Left.isOneOf(Keywords.kw_let, Keywords.kw_var, TT_JsFatArrow, Keywords.kw_in)) return true; + if (Left.is(tok::kw_default) && Right.is(TT_ArrayInitializerLSquare)) + return true; // For "export default [];". if (Left.is(Keywords.kw_is) && Right.is(tok::l_brace)) return true; if (Right.isOneOf(TT_JsTypeColon, TT_JsTypeOptionalQuestion)) diff --git a/unittests/Format/FormatTestJS.cpp b/unittests/Format/FormatTestJS.cpp index d42eed6048..0013e83ddd 100644 --- a/unittests/Format/FormatTestJS.cpp +++ b/unittests/Format/FormatTestJS.cpp @@ -865,6 +865,11 @@ TEST_F(FormatTestJS, Modules) { " // adsdasd\n" " BAZ\n" "}"); + verifyFormat("export default [\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n" + " bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n" + "];"); + verifyFormat("export default [];"); } TEST_F(FormatTestJS, TemplateStrings) { -- 2.50.1