]> granicus.if.org Git - clang/commitdiff
[clang-format] Recognize ECMAScript module .mjs as JavaScript
authorFangrui Song <maskray@google.com>
Fri, 23 Aug 2019 04:46:01 +0000 (04:46 +0000)
committerFangrui Song <maskray@google.com>
Fri, 23 Aug 2019 04:46:01 +0000 (04:46 +0000)
PR43085.

Recognize .mjs files as JavaScript. .mjs is the extension for ECMAScript modules.
A specific extension (and associated content type javascript/esm) is
introduced to differentiate it from CommonJS modules and solve some
interoperability problems.

Differential Revision: https://reviews.llvm.org/D66584
Patch by Fergal Daly

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

lib/Format/Format.cpp

index 4fbaee470fa0a61ee42517ae9297f4fc5170bad4..175807edfb4bce50bc6b9f96b0f7532e1c0f1d20 100644 (file)
@@ -2411,8 +2411,9 @@ const char *StyleOptionHelpDescription =
 static FormatStyle::LanguageKind getLanguageByFileName(StringRef FileName) {
   if (FileName.endswith(".java"))
     return FormatStyle::LK_Java;
-  if (FileName.endswith_lower(".js") || FileName.endswith_lower(".ts"))
-    return FormatStyle::LK_JavaScript; // JavaScript or TypeScript.
+  if (FileName.endswith_lower(".js") || FileName.endswith_lower(".mjs") ||
+      FileName.endswith_lower(".ts"))
+    return FormatStyle::LK_JavaScript; // (module) JavaScript or TypeScript.
   if (FileName.endswith(".m") || FileName.endswith(".mm"))
     return FormatStyle::LK_ObjC;
   if (FileName.endswith_lower(".proto") ||