]> granicus.if.org Git - clang/commitdiff
clang-format: [JS] Support more ES6 imports.
authorDaniel Jasper <djasper@google.com>
Thu, 7 Jan 2016 08:53:35 +0000 (08:53 +0000)
committerDaniel Jasper <djasper@google.com>
Thu, 7 Jan 2016 08:53:35 +0000 (08:53 +0000)
Before:
  import a, {X, Y}
  from 'some/module.js';

After:
  import a, {X, Y} from 'some/module.js';

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

lib/Format/UnwrappedLineParser.cpp
unittests/Format/FormatTestJS.cpp

index 94b8498819412b7c9cc92d2dd7dded045b443d91..27e2f84d245c0dd2af0b8c9afbe7908d23a5d9df 100644 (file)
@@ -1796,14 +1796,13 @@ void UnwrappedLineParser::parseJavaScriptEs6ImportExport() {
                          Keywords.kw_let, Keywords.kw_var))
     return; // Fall through to parsing the corresponding structure.
 
-  if (FormatTok->is(tok::l_brace)) {
-    FormatTok->BlockKind = BK_Block;
-    parseBracedList();
-  }
-
-  while (!eof() && FormatTok->isNot(tok::semi) &&
-         FormatTok->isNot(tok::l_brace)) {
-    nextToken();
+  while (!eof() && FormatTok->isNot(tok::semi)) {
+    if (FormatTok->is(tok::l_brace)) {
+      FormatTok->BlockKind = BK_Block;
+      parseBracedList();
+    } else {
+      nextToken();
+    }
   }
 }
 
index 2f67bdf549ca33dfb6045735e14c9851483bf12c..c312883ee7757740ec89f62255d675b120cc7823 100644 (file)
@@ -812,6 +812,7 @@ TEST_F(FormatTestJS, MetadataAnnotations) {
 TEST_F(FormatTestJS, Modules) {
   verifyFormat("import SomeThing from 'some/module.js';");
   verifyFormat("import {X, Y} from 'some/module.js';");
+  verifyFormat("import a, {X, Y} from 'some/module.js';");
   verifyFormat("import {\n"
                "  VeryLongImportsAreAnnoying,\n"
                "  VeryLongImportsAreAnnoying,\n"