From: Daniel Jasper Date: Mon, 4 Jan 2016 15:51:56 +0000 (+0000) Subject: clang-format: [JS] Support ES6 exports of array literals. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=286d410d2b459af100295b02d6a96335d64c8f91;p=clang 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 --- 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) {