Spell out dynamic imports

pull/2748/head
Alex Dima 7 years ago
parent dfbeb25855
commit 2ad83718b7

@ -1,6 +1,6 @@
language: node_js language: node_js
node_js: node_js:
- "5.10" - "8.9.3"
script: script:
- npm run compile - npm run compile
- npm run test - npm run test

@ -4,13 +4,11 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
declare var require: <T>(moduleId: [string], callback: (module: T) => void, error: (err: any) => void) => void;
// Allow for running under nodejs/requirejs in tests // Allow for running under nodejs/requirejs in tests
const _monaco: typeof monaco = (typeof monaco === 'undefined' ? (<any>self).monaco : monaco); const _monaco: typeof monaco = (typeof monaco === 'undefined' ? (<any>self).monaco : monaco);
interface ILang extends monaco.languages.ILanguageExtensionPoint { interface ILang extends monaco.languages.ILanguageExtensionPoint {
module: string; loader: () => monaco.Promise<ILangImpl>;
} }
interface ILangImpl { interface ILangImpl {
@ -21,13 +19,10 @@ interface ILangImpl {
let languageDefinitions: { [languageId: string]: ILang } = {}; let languageDefinitions: { [languageId: string]: ILang } = {};
function _loadLanguage(languageId: string): monaco.Promise<void> { function _loadLanguage(languageId: string): monaco.Promise<void> {
let module = languageDefinitions[languageId].module; const loader = languageDefinitions[languageId].loader;
return new _monaco.Promise<void>((c, e, p) => { return loader().then((mod) => {
require<ILangImpl>([module], (mod) => {
_monaco.languages.setMonarchTokensProvider(languageId, mod.language); _monaco.languages.setMonarchTokensProvider(languageId, mod.language);
_monaco.languages.setLanguageConfiguration(languageId, mod.conf); _monaco.languages.setLanguageConfiguration(languageId, mod.conf);
c(void 0);
}, e);
}); });
} }
@ -55,174 +50,174 @@ registerLanguage({
id: 'bat', id: 'bat',
extensions: ['.bat', '.cmd'], extensions: ['.bat', '.cmd'],
aliases: ['Batch', 'bat'], aliases: ['Batch', 'bat'],
module: './bat' loader: () => _monaco.Promise.wrap(import('./bat'))
}); });
registerLanguage({ registerLanguage({
id: 'coffeescript', id: 'coffeescript',
extensions: ['.coffee'], extensions: ['.coffee'],
aliases: ['CoffeeScript', 'coffeescript', 'coffee'], aliases: ['CoffeeScript', 'coffeescript', 'coffee'],
mimetypes: ['text/x-coffeescript', 'text/coffeescript'], mimetypes: ['text/x-coffeescript', 'text/coffeescript'],
module: './coffee' loader: () => _monaco.Promise.wrap(import('./coffee'))
}); });
registerLanguage({ registerLanguage({
id: 'c', id: 'c',
extensions: ['.c', '.h'], extensions: ['.c', '.h'],
aliases: ['C', 'c'], aliases: ['C', 'c'],
module: './cpp' loader: () => _monaco.Promise.wrap(import('./cpp'))
}); });
registerLanguage({ registerLanguage({
id: 'cpp', id: 'cpp',
extensions: ['.cpp', '.cc', '.cxx', '.hpp', '.hh', '.hxx'], extensions: ['.cpp', '.cc', '.cxx', '.hpp', '.hh', '.hxx'],
aliases: ['C++', 'Cpp', 'cpp'], aliases: ['C++', 'Cpp', 'cpp'],
module: './cpp' loader: () => _monaco.Promise.wrap(import('./cpp'))
}); });
registerLanguage({ registerLanguage({
id: 'csharp', id: 'csharp',
extensions: ['.cs', '.csx'], extensions: ['.cs', '.csx'],
aliases: ['C#', 'csharp'], aliases: ['C#', 'csharp'],
module: './csharp' loader: () => _monaco.Promise.wrap(import('./csharp'))
}); });
registerLanguage({ registerLanguage({
id: 'dockerfile', id: 'dockerfile',
extensions: ['.dockerfile'], extensions: ['.dockerfile'],
filenames: ['Dockerfile'], filenames: ['Dockerfile'],
aliases: ['Dockerfile'], aliases: ['Dockerfile'],
module: './dockerfile' loader: () => _monaco.Promise.wrap(import('./dockerfile'))
}); });
registerLanguage({ registerLanguage({
id: 'fsharp', id: 'fsharp',
extensions: ['.fs', '.fsi', '.ml', '.mli', '.fsx', '.fsscript'], extensions: ['.fs', '.fsi', '.ml', '.mli', '.fsx', '.fsscript'],
aliases: ['F#', 'FSharp', 'fsharp'], aliases: ['F#', 'FSharp', 'fsharp'],
module: './fsharp' loader: () => _monaco.Promise.wrap(import('./fsharp'))
}); });
registerLanguage({ registerLanguage({
id: 'go', id: 'go',
extensions: ['.go'], extensions: ['.go'],
aliases: ['Go'], aliases: ['Go'],
module: './go' loader: () => _monaco.Promise.wrap(import('./go'))
}); });
registerLanguage({ registerLanguage({
id: 'handlebars', id: 'handlebars',
extensions: ['.handlebars', '.hbs'], extensions: ['.handlebars', '.hbs'],
aliases: ['Handlebars', 'handlebars'], aliases: ['Handlebars', 'handlebars'],
mimetypes: ['text/x-handlebars-template'], mimetypes: ['text/x-handlebars-template'],
module: './handlebars' loader: () => _monaco.Promise.wrap(import('./handlebars'))
}); });
registerLanguage({ registerLanguage({
id: 'html', id: 'html',
extensions: ['.html', '.htm', '.shtml', '.xhtml', '.mdoc', '.jsp', '.asp', '.aspx', '.jshtm'], extensions: ['.html', '.htm', '.shtml', '.xhtml', '.mdoc', '.jsp', '.asp', '.aspx', '.jshtm'],
aliases: ['HTML', 'htm', 'html', 'xhtml'], aliases: ['HTML', 'htm', 'html', 'xhtml'],
mimetypes: ['text/html', 'text/x-jshtm', 'text/template', 'text/ng-template'], mimetypes: ['text/html', 'text/x-jshtm', 'text/template', 'text/ng-template'],
module: './html' loader: () => _monaco.Promise.wrap(import('./html'))
}); });
registerLanguage({ registerLanguage({
id: 'ini', id: 'ini',
extensions: ['.ini', '.properties', '.gitconfig'], extensions: ['.ini', '.properties', '.gitconfig'],
filenames: ['config', '.gitattributes', '.gitconfig', '.editorconfig'], filenames: ['config', '.gitattributes', '.gitconfig', '.editorconfig'],
aliases: ['Ini', 'ini'], aliases: ['Ini', 'ini'],
module: './ini' loader: () => _monaco.Promise.wrap(import('./ini'))
}); });
registerLanguage({ registerLanguage({
id: 'pug', id: 'pug',
extensions: ['.jade', '.pug'], extensions: ['.jade', '.pug'],
aliases: ['Pug', 'Jade', 'jade'], aliases: ['Pug', 'Jade', 'jade'],
module: './pug' loader: () => _monaco.Promise.wrap(import('./pug'))
}); });
registerLanguage({ registerLanguage({
id: 'java', id: 'java',
extensions: ['.java', '.jav'], extensions: ['.java', '.jav'],
aliases: ['Java', 'java'], aliases: ['Java', 'java'],
mimetypes: ['text/x-java-source', 'text/x-java'], mimetypes: ['text/x-java-source', 'text/x-java'],
module: './java' loader: () => _monaco.Promise.wrap(import('./java'))
}); });
registerLanguage({ registerLanguage({
id: 'lua', id: 'lua',
extensions: ['.lua'], extensions: ['.lua'],
aliases: ['Lua', 'lua'], aliases: ['Lua', 'lua'],
module: './lua' loader: () => _monaco.Promise.wrap(import('./lua'))
}); });
registerLanguage({ registerLanguage({
id: 'markdown', id: 'markdown',
extensions: ['.md', '.markdown', '.mdown', '.mkdn', '.mkd', '.mdwn', '.mdtxt', '.mdtext'], extensions: ['.md', '.markdown', '.mdown', '.mkdn', '.mkd', '.mdwn', '.mdtxt', '.mdtext'],
aliases: ['Markdown', 'markdown'], aliases: ['Markdown', 'markdown'],
module: './markdown' loader: () => _monaco.Promise.wrap(import('./markdown'))
}); });
registerLanguage({ registerLanguage({
id: 'msdax', id: 'msdax',
extensions: ['.dax', '.msdax'], extensions: ['.dax', '.msdax'],
aliases: ['DAX', 'MSDAX'], aliases: ['DAX', 'MSDAX'],
module: './msdax' loader: () => _monaco.Promise.wrap(import('./msdax'))
}); });
registerLanguage({ registerLanguage({
id: 'objective-c', id: 'objective-c',
extensions: ['.m'], extensions: ['.m'],
aliases: ['Objective-C'], aliases: ['Objective-C'],
module: './objective-c' loader: () => _monaco.Promise.wrap(import('./objective-c'))
}); });
registerLanguage({ registerLanguage({
id: 'postiats', id: 'postiats',
extensions: ['.dats', '.sats', '.hats'], extensions: ['.dats', '.sats', '.hats'],
aliases: ['ATS', 'ATS/Postiats'], aliases: ['ATS', 'ATS/Postiats'],
module: './postiats' loader: () => _monaco.Promise.wrap(import('./postiats'))
}); });
registerLanguage({ registerLanguage({
id: 'php', id: 'php',
extensions: ['.php', '.php4', '.php5', '.phtml', '.ctp'], extensions: ['.php', '.php4', '.php5', '.phtml', '.ctp'],
aliases: ['PHP', 'php'], aliases: ['PHP', 'php'],
mimetypes: ['application/x-php'], mimetypes: ['application/x-php'],
module: './php' loader: () => _monaco.Promise.wrap(import('./php'))
}); });
registerLanguage({ registerLanguage({
id: 'powershell', id: 'powershell',
extensions: ['.ps1', '.psm1', '.psd1'], extensions: ['.ps1', '.psm1', '.psd1'],
aliases: ['PowerShell', 'powershell', 'ps', 'ps1'], aliases: ['PowerShell', 'powershell', 'ps', 'ps1'],
module: './powershell' loader: () => _monaco.Promise.wrap(import('./powershell'))
}); });
registerLanguage({ registerLanguage({
id: 'python', id: 'python',
extensions: ['.py', '.rpy', '.pyw', '.cpy', '.gyp', '.gypi'], extensions: ['.py', '.rpy', '.pyw', '.cpy', '.gyp', '.gypi'],
aliases: ['Python', 'py'], aliases: ['Python', 'py'],
firstLine: '^#!/.*\\bpython[0-9.-]*\\b', firstLine: '^#!/.*\\bpython[0-9.-]*\\b',
module: './python' loader: () => _monaco.Promise.wrap(import('./python'))
}); });
registerLanguage({ registerLanguage({
id: 'r', id: 'r',
extensions: ['.r', '.rhistory', '.rprofile', '.rt'], extensions: ['.r', '.rhistory', '.rprofile', '.rt'],
aliases: ['R', 'r'], aliases: ['R', 'r'],
module: './r' loader: () => _monaco.Promise.wrap(import('./r'))
}); });
registerLanguage({ registerLanguage({
id: 'razor', id: 'razor',
extensions: ['.cshtml'], extensions: ['.cshtml'],
aliases: ['Razor', 'razor'], aliases: ['Razor', 'razor'],
mimetypes: ['text/x-cshtml'], mimetypes: ['text/x-cshtml'],
module: './razor' loader: () => _monaco.Promise.wrap(import('./razor'))
}); });
registerLanguage({ registerLanguage({
id: 'ruby', id: 'ruby',
extensions: ['.rb', '.rbx', '.rjs', '.gemspec', '.pp'], extensions: ['.rb', '.rbx', '.rjs', '.gemspec', '.pp'],
filenames: ['rakefile'], filenames: ['rakefile'],
aliases: ['Ruby', 'rb'], aliases: ['Ruby', 'rb'],
module: './ruby' loader: () => _monaco.Promise.wrap(import('./ruby'))
}); });
registerLanguage({ registerLanguage({
id: 'swift', id: 'swift',
aliases: ['Swift', 'swift'], aliases: ['Swift', 'swift'],
extensions: ['.swift'], extensions: ['.swift'],
mimetypes: ['text/swift'], mimetypes: ['text/swift'],
module: './swift' loader: () => _monaco.Promise.wrap(import('./swift'))
}); });
registerLanguage({ registerLanguage({
id: 'sql', id: 'sql',
extensions: ['.sql'], extensions: ['.sql'],
aliases: ['SQL'], aliases: ['SQL'],
module: './sql' loader: () => _monaco.Promise.wrap(import('./sql'))
}); });
registerLanguage({ registerLanguage({
id: 'vb', id: 'vb',
extensions: ['.vb'], extensions: ['.vb'],
aliases: ['Visual Basic', 'vb'], aliases: ['Visual Basic', 'vb'],
module: './vb' loader: () => _monaco.Promise.wrap(import('./vb'))
}); });
registerLanguage({ registerLanguage({
id: 'xml', id: 'xml',
@ -230,80 +225,80 @@ registerLanguage({
firstLine: '(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)', firstLine: '(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)',
aliases: ['XML', 'xml'], aliases: ['XML', 'xml'],
mimetypes: ['text/xml', 'application/xml', 'application/xaml+xml', 'application/xml-dtd'], mimetypes: ['text/xml', 'application/xml', 'application/xaml+xml', 'application/xml-dtd'],
module: './xml' loader: () => _monaco.Promise.wrap(import('./xml'))
}); });
registerLanguage({ registerLanguage({
id: 'less', id: 'less',
extensions: ['.less'], extensions: ['.less'],
aliases: ['Less', 'less'], aliases: ['Less', 'less'],
mimetypes: ['text/x-less', 'text/less'], mimetypes: ['text/x-less', 'text/less'],
module: './less' loader: () => _monaco.Promise.wrap(import('./less'))
}); });
registerLanguage({ registerLanguage({
id: 'scss', id: 'scss',
extensions: ['.scss'], extensions: ['.scss'],
aliases: ['Sass', 'sass', 'scss'], aliases: ['Sass', 'sass', 'scss'],
mimetypes: ['text/x-scss', 'text/scss'], mimetypes: ['text/x-scss', 'text/scss'],
module: './scss' loader: () => _monaco.Promise.wrap(import('./scss'))
}); });
registerLanguage({ registerLanguage({
id: 'css', id: 'css',
extensions: ['.css'], extensions: ['.css'],
aliases: ['CSS', 'css'], aliases: ['CSS', 'css'],
mimetypes: ['text/css'], mimetypes: ['text/css'],
module: './css' loader: () => _monaco.Promise.wrap(import('./css'))
}); });
registerLanguage({ registerLanguage({
id: 'yaml', id: 'yaml',
extensions: ['.yaml', '.yml'], extensions: ['.yaml', '.yml'],
aliases: ['YAML', 'yaml', 'YML', 'yml'], aliases: ['YAML', 'yaml', 'YML', 'yml'],
mimetypes: ['application/x-yaml'], mimetypes: ['application/x-yaml'],
module: './yaml' loader: () => _monaco.Promise.wrap(import('./yaml'))
}); });
registerLanguage({ registerLanguage({
id: 'sol', id: 'sol',
extensions: ['.sol'], extensions: ['.sol'],
aliases: ['sol', 'solidity', 'Solidity'], aliases: ['sol', 'solidity', 'Solidity'],
module: './solidity' loader: () => _monaco.Promise.wrap(import('./solidity'))
}); });
registerLanguage({ registerLanguage({
id: 'sb', id: 'sb',
extensions: ['.sb'], extensions: ['.sb'],
aliases: ['Small Basic', 'sb'], aliases: ['Small Basic', 'sb'],
module: './sb' loader: () => _monaco.Promise.wrap(import('./sb'))
}); });
registerLanguage({ registerLanguage({
id: 'mysql', id: 'mysql',
extensions: [], extensions: [],
aliases: ['MySQL', 'mysql'], aliases: ['MySQL', 'mysql'],
module: './mysql' loader: () => _monaco.Promise.wrap(import('./mysql'))
}); });
registerLanguage({ registerLanguage({
id: 'pgsql', id: 'pgsql',
extensions: [], extensions: [],
aliases: ['PostgreSQL', 'postgres', 'pg', 'postgre'], aliases: ['PostgreSQL', 'postgres', 'pg', 'postgre'],
module: './pgsql' loader: () => _monaco.Promise.wrap(import('./pgsql'))
}); });
registerLanguage({ registerLanguage({
id: 'redshift', id: 'redshift',
extensions: [], extensions: [],
aliases: ['Redshift', 'redshift'], aliases: ['Redshift', 'redshift'],
module: './redshift' loader: () => _monaco.Promise.wrap(import('./redshift'))
}); });
registerLanguage({ registerLanguage({
id: 'redis', id: 'redis',
extensions: ['.redis'], extensions: ['.redis'],
aliases: ['redis'], aliases: ['redis'],
module: './redis' loader: () => _monaco.Promise.wrap(import('./redis'))
}); });
registerLanguage({ registerLanguage({
id: 'csp', id: 'csp',
extensions: [], extensions: [],
aliases: ['CSP', 'csp'], aliases: ['CSP', 'csp'],
module: './csp' loader: () => _monaco.Promise.wrap(import('./csp'))
}); });

@ -1,8 +1,14 @@
{ {
"compilerOptions": { "compilerOptions": {
"module": "es6", "module": "esnext",
"outDir": "../release/esm", "outDir": "../release/esm",
"target": "es5" "target": "es5",
"lib": [
"dom",
"es5",
"es2015.collection",
"es2015.promise"
]
}, },
"include": [ "include": [
"**/*.ts" "**/*.ts"

@ -2,7 +2,13 @@
"compilerOptions": { "compilerOptions": {
"module": "amd", "module": "amd",
"outDir": "../release/dev", "outDir": "../release/dev",
"target": "es5" "target": "es5",
"lib": [
"dom",
"es5",
"es2015.collection",
"es2015.promise"
]
}, },
"include": [ "include": [
"**/*.ts" "**/*.ts"

Loading…
Cancel
Save