diff --git a/extensions/javascript/package.json b/extensions/javascript/package.json
index aeb014688ae..b8c76ba64aa 100644
--- a/extensions/javascript/package.json
+++ b/extensions/javascript/package.json
@@ -41,7 +41,8 @@
],
"extensions": [
".js",
- ".es6"
+ ".es6",
+ ".mjs"
],
"filenames": [
"jakefile"
diff --git a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json b/extensions/javascript/syntaxes/JavaScript.tmLanguage.json
index bda3bd858cd..7d5f08c0d49 100644
--- a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json
+++ b/extensions/javascript/syntaxes/JavaScript.tmLanguage.json
@@ -3,7 +3,9 @@
"scopeName": "source.js",
"fileTypes": [
".js",
- ".jsx"
+ ".jsx",
+ ".es6",
+ ".mjs"
],
"uuid": "805375ec-d614-41f5-8993-5843fe63ea82",
"patterns": [
diff --git a/extensions/markdown/syntaxes/gulpfile.js b/extensions/markdown/syntaxes/gulpfile.js
index f57cb80fb9d..a01ff06499c 100644
--- a/extensions/markdown/syntaxes/gulpfile.js
+++ b/extensions/markdown/syntaxes/gulpfile.js
@@ -34,7 +34,7 @@ const languages = [
{ name: 'groovy', identifiers: ['groovy', 'gvy'], source: 'source.groovy' },
{ name: 'jade', identifiers: ['jade'], source: 'text.jade' },
- { name: 'js', identifiers: ['js', 'jsx', 'javascript'], source: 'source.js' },
+ { name: 'js', identifiers: ['js', 'jsx', 'javascript', 'es6', 'mjs'], source: 'source.js' },
{ name: 'js_regexp', identifiers: ['regexp'], source: 'source.js.regexp' },
{ name: 'json', identifiers: ['json', 'sublime-settings', 'sublime-menu', 'sublime-keymap', 'sublime-mousemap', 'sublime-theme', 'sublime-build', 'sublime-project', 'sublime-completions'], source: 'source.json' },
{ name: 'less', identifiers: ['less'], source: 'source.css.less' },
diff --git a/extensions/markdown/syntaxes/markdown.tmLanguage b/extensions/markdown/syntaxes/markdown.tmLanguage
index df4657d2014..38d1292f7e4 100644
--- a/extensions/markdown/syntaxes/markdown.tmLanguage
+++ b/extensions/markdown/syntaxes/markdown.tmLanguage
@@ -1965,7 +1965,7 @@
fenced_code_block_js
begin
- (^|\G)(\s*)([`~]{3,})\s*((js|jsx|javascript)(\s+[^`~]*)?$)
+ (^|\G)(\s*)([`~]{3,})\s*((js|jsx|javascript|es6|mjs)(\s+[^`~]*)?$)
name
markup.fenced_code.block.markdown
end
diff --git a/extensions/typescript/build/update-grammars.js b/extensions/typescript/build/update-grammars.js
index 2ce6ee9d828..c38d6f10510 100644
--- a/extensions/typescript/build/update-grammars.js
+++ b/extensions/typescript/build/update-grammars.js
@@ -8,7 +8,7 @@ var updateGrammar = require('../../../build/npm/update-grammar');
function adaptToJavaScript(grammar) {
grammar.name = 'JavaScript (with React support)';
- grammar.fileTypes = ['.js', '.jsx' ];
+ grammar.fileTypes = ['.js', '.jsx', '.es6', '.mjs' ];
grammar.scopeName = 'source.js';
var fixScopeNames = function(rule) {
diff --git a/extensions/typescript/src/typescriptMain.ts b/extensions/typescript/src/typescriptMain.ts
index cc01c02942b..fbc5b02ce7a 100644
--- a/extensions/typescript/src/typescriptMain.ts
+++ b/extensions/typescript/src/typescriptMain.ts
@@ -84,7 +84,7 @@ export function activate(context: ExtensionContext): void {
id: 'javascript',
diagnosticSource: 'js',
modeIds: [MODE_ID_JS, MODE_ID_JSX],
- extensions: ['.js', '.jsx'],
+ extensions: ['.js', '.jsx', '.es6', '.mjs'],
configFile: 'jsconfig.json'
}
], context.storagePath, context.globalState, context.workspaceState);
diff --git a/src/vs/base/test/node/glob.test.ts b/src/vs/base/test/node/glob.test.ts
index c48e8a3edf7..eb9ee5e8756 100644
--- a/src/vs/base/test/node/glob.test.ts
+++ b/src/vs/base/test/node/glob.test.ts
@@ -15,12 +15,12 @@ suite('Glob', () => {
// let patterns = [
// '{**/*.cs,**/*.json,**/*.csproj,**/*.sln}',
// '{**/*.cs,**/*.csproj,**/*.sln}',
- // '{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.es6}',
+ // '{**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.es6,**/*.mjs}',
// '**/*.go',
// '{**/*.ps,**/*.ps1}',
// '{**/*.c,**/*.cpp,**/*.h}',
// '{**/*.fsx,**/*.fsi,**/*.fs,**/*.ml,**/*.mli}',
- // '{**/*.js,**/*.jsx,**/*.es6}',
+ // '{**/*.js,**/*.jsx,**/*.es6,**/*.mjs}',
// '{**/*.ts,**/*.tsx}',
// '{**/*.php}',
// '{**/*.php}',