236 lines
8.6 KiB
TypeScript
236 lines
8.6 KiB
TypeScript
// 这是个特殊的方法,请看考 mod.js 里面的实现。
|
|
export function __mod__async__load(callback: (exports: any) => void) {
|
|
// @ts-ignore
|
|
const monacoLoader = __uri('monaco-editor/min/vs/loader.js');
|
|
|
|
// @ts-ignore
|
|
const script = amis.require.loadJs(filterUrl(monacoLoader));
|
|
script.onload = () => onLoad(window.require, callback);
|
|
}
|
|
|
|
function __uri(url: string) {
|
|
return url;
|
|
}
|
|
|
|
// 用于发布 sdk 版本的时候替换,因为不确定 sdk 版本怎么部署,而 worker 地址路径不可知。
|
|
// 所以会被 fis3 替换成取相对的代码。
|
|
function filterUrl(url: string) {
|
|
return url;
|
|
}
|
|
|
|
function onLoad(req: any, callback: (result: any) => void) {
|
|
const config = {
|
|
'vs/nls': {
|
|
availableLanguages: {
|
|
'*': 'zh-cn'
|
|
}
|
|
},
|
|
'paths': {
|
|
'vs': __uri('monaco-editor/min/vs/editor/editor.main.js').replace(
|
|
/\/vs\/.*$/,
|
|
''
|
|
),
|
|
'vs/base/worker/workerMain': __uri(
|
|
'monaco-editor/min/vs/base/worker/workerMain.js'
|
|
),
|
|
'vs/basic-languages/apex/apex': __uri(
|
|
'monaco-editor/min/vs/basic-languages/apex/apex'
|
|
),
|
|
'vs/basic-languages/azcli/azcli': __uri(
|
|
'monaco-editor/min/vs/basic-languages/azcli/azcli'
|
|
),
|
|
'vs/basic-languages/clojure/clojure': __uri(
|
|
'monaco-editor/min/vs/basic-languages/clojure/clojure'
|
|
),
|
|
'vs/basic-languages/bat/bat': __uri(
|
|
'monaco-editor/min/vs/basic-languages/bat/bat'
|
|
),
|
|
'vs/basic-languages/coffee/coffee': __uri(
|
|
'monaco-editor/min/vs/basic-languages/coffee/coffee'
|
|
),
|
|
'vs/basic-languages/cpp/cpp': __uri(
|
|
'monaco-editor/min/vs/basic-languages/cpp/cpp'
|
|
),
|
|
'vs/basic-languages/csharp/csharp': __uri(
|
|
'monaco-editor/min/vs/basic-languages/csharp/csharp'
|
|
),
|
|
'vs/basic-languages/css/css': __uri(
|
|
'monaco-editor/min/vs/basic-languages/css/css'
|
|
),
|
|
'vs/basic-languages/dockerfile/dockerfile': __uri(
|
|
'monaco-editor/min/vs/basic-languages/dockerfile/dockerfile'
|
|
),
|
|
'vs/basic-languages/fsharp/fsharp': __uri(
|
|
'monaco-editor/min/vs/basic-languages/fsharp/fsharp'
|
|
),
|
|
'vs/basic-languages/go/go': __uri(
|
|
'monaco-editor/min/vs/basic-languages/go/go'
|
|
),
|
|
'vs/basic-languages/handlebars/handlebars': __uri(
|
|
'monaco-editor/min/vs/basic-languages/handlebars/handlebars'
|
|
),
|
|
'vs/basic-languages/html/html': __uri(
|
|
'monaco-editor/min/vs/basic-languages/html/html'
|
|
),
|
|
'vs/basic-languages/ini/ini': __uri(
|
|
'monaco-editor/min/vs/basic-languages/ini/ini'
|
|
),
|
|
'vs/basic-languages/java/java': __uri(
|
|
'monaco-editor/min/vs/basic-languages/java/java'
|
|
),
|
|
'vs/basic-languages/javascript/javascript': __uri(
|
|
'monaco-editor/min/vs/basic-languages/javascript/javascript'
|
|
),
|
|
'vs/basic-languages/less/less': __uri(
|
|
'monaco-editor/min/vs/basic-languages/less/less'
|
|
),
|
|
'vs/basic-languages/lua/lua': __uri(
|
|
'monaco-editor/min/vs/basic-languages/lua/lua'
|
|
),
|
|
'vs/basic-languages/markdown/markdown': __uri(
|
|
'monaco-editor/min/vs/basic-languages/markdown/markdown'
|
|
),
|
|
'vs/basic-languages/msdax/msdax': __uri(
|
|
'monaco-editor/min/vs/basic-languages/msdax/msdax'
|
|
),
|
|
'vs/basic-languages/objective-c/objective-c': __uri(
|
|
'monaco-editor/min/vs/basic-languages/objective-c/objective-c'
|
|
),
|
|
'vs/basic-languages/php/php': __uri(
|
|
'monaco-editor/min/vs/basic-languages/php/php'
|
|
),
|
|
'vs/basic-languages/postiats/postiats': __uri(
|
|
'monaco-editor/min/vs/basic-languages/postiats/postiats'
|
|
),
|
|
'vs/basic-languages/powershell/powershell': __uri(
|
|
'monaco-editor/min/vs/basic-languages/powershell/powershell'
|
|
),
|
|
'vs/basic-languages/pug/pug': __uri(
|
|
'monaco-editor/min/vs/basic-languages/pug/pug'
|
|
),
|
|
'vs/basic-languages/python/python': __uri(
|
|
'monaco-editor/min/vs/basic-languages/python/python'
|
|
),
|
|
'vs/basic-languages/r/r': __uri(
|
|
'monaco-editor/min/vs/basic-languages/r/r'
|
|
),
|
|
'vs/basic-languages/razor/razor': __uri(
|
|
'monaco-editor/min/vs/basic-languages/razor/razor'
|
|
),
|
|
'vs/basic-languages/redis/redis': __uri(
|
|
'monaco-editor/min/vs/basic-languages/redis/redis'
|
|
),
|
|
'vs/basic-languages/redshift/redshift': __uri(
|
|
'monaco-editor/min/vs/basic-languages/redshift/redshift'
|
|
),
|
|
'vs/basic-languages/ruby/ruby': __uri(
|
|
'monaco-editor/min/vs/basic-languages/ruby/ruby'
|
|
),
|
|
'vs/basic-languages/rust/rust': __uri(
|
|
'monaco-editor/min/vs/basic-languages/rust/rust'
|
|
),
|
|
'vs/basic-languages/sb/sb': __uri(
|
|
'monaco-editor/min/vs/basic-languages/sb/sb'
|
|
),
|
|
'vs/basic-languages/scheme/scheme': __uri(
|
|
'monaco-editor/min/vs/basic-languages/scheme/scheme'
|
|
),
|
|
'vs/basic-languages/scss/scss': __uri(
|
|
'monaco-editor/min/vs/basic-languages/scss/scss'
|
|
),
|
|
'vs/basic-languages/shell/shell': __uri(
|
|
'monaco-editor/min/vs/basic-languages/shell/shell'
|
|
),
|
|
'vs/basic-languages/solidity/solidity': __uri(
|
|
'monaco-editor/min/vs/basic-languages/solidity/solidity'
|
|
),
|
|
'vs/basic-languages/sql/sql': __uri(
|
|
'monaco-editor/min/vs/basic-languages/sql/sql'
|
|
),
|
|
'vs/basic-languages/st/st': __uri(
|
|
'monaco-editor/min/vs/basic-languages/st/st'
|
|
),
|
|
'vs/basic-languages/swift/swift': __uri(
|
|
'monaco-editor/min/vs/basic-languages/swift/swift'
|
|
),
|
|
'vs/basic-languages/typescript/typescript': __uri(
|
|
'monaco-editor/min/vs/basic-languages/typescript/typescript'
|
|
),
|
|
'vs/basic-languages/vb/vb': __uri(
|
|
'monaco-editor/min/vs/basic-languages/vb/vb'
|
|
),
|
|
'vs/basic-languages/xml/xml': __uri(
|
|
'monaco-editor/min/vs/basic-languages/xml/xml'
|
|
),
|
|
'vs/basic-languages/yaml/yaml': __uri(
|
|
'monaco-editor/min/vs/basic-languages/yaml/yaml'
|
|
),
|
|
'vs/editor/editor.main': __uri(
|
|
'monaco-editor/min/vs/editor/editor.main.js'
|
|
),
|
|
'vs/editor/editor.main.css': __uri(
|
|
'monaco-editor/min/vs/editor/editor.main.css'
|
|
),
|
|
'vs/editor/editor.main.nls': __uri(
|
|
'monaco-editor/min/vs/editor/editor.main.nls.js'
|
|
),
|
|
'vs/editor/editor.main.nls.zh-cn': __uri(
|
|
'monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js'
|
|
),
|
|
// 'vs/editor/contrib/suggest/media/String_16x.svg': __uri('monaco-editor/min/vs/editor/contrib/suggest/media/String_16x.svg'),
|
|
// 'vs/editor/contrib/suggest/media/String_inverse_16x.svg': __uri('monaco-editor/min/vs/editor/contrib/suggest/media/String_inverse_16x.svg'),
|
|
// 'vs/editor/standalone/browser/quickOpen/symbol-sprite.svg': __uri('monaco-editor/min/vs/editor/standalone/browser/quickOpen/symbol-sprite.svg'),
|
|
'vs/language/typescript/tsMode': __uri(
|
|
'monaco-editor/min/vs/language/typescript/tsMode.js'
|
|
),
|
|
// 'vs/language/typescript/lib/typescriptServices': __uri('monaco-editor/min/vs/language/typescript/lib/typescriptServices.js'),
|
|
'vs/language/typescript/tsWorker': __uri(
|
|
'monaco-editor/min/vs/language/typescript/tsWorker.js'
|
|
),
|
|
'vs/language/json/jsonMode': __uri(
|
|
'monaco-editor/min/vs/language/json/jsonMode.js'
|
|
),
|
|
'vs/language/json/jsonWorker': __uri(
|
|
'monaco-editor/min/vs/language/json/jsonWorker.js'
|
|
),
|
|
'vs/language/html/htmlMode': __uri(
|
|
'monaco-editor/min/vs/language/html/htmlMode.js'
|
|
),
|
|
'vs/language/html/htmlWorker': __uri(
|
|
'monaco-editor/min/vs/language/html/htmlWorker.js'
|
|
),
|
|
'vs/language/css/cssMode': __uri(
|
|
'monaco-editor/min/vs/language/css/cssMode.js'
|
|
),
|
|
'vs/language/css/cssWorker': __uri(
|
|
'monaco-editor/min/vs/language/css/cssWorker.js'
|
|
)
|
|
}
|
|
};
|
|
Object.keys(config.paths).forEach((key: keyof typeof config.paths) => {
|
|
config.paths[key] = filterUrl(config.paths[key].replace(/\.js$/, ''));
|
|
});
|
|
req.config(config);
|
|
|
|
if (/^(https?:)?\/\//.test(config.paths.vs)) {
|
|
(window as any).MonacoEnvironment = {
|
|
getWorkerUrl: function () {
|
|
return `data:text/javascript;charset=utf-8,${encodeURIComponent(`
|
|
self.MonacoEnvironment = {
|
|
baseUrl: '${config.paths.vs}',
|
|
paths: ${JSON.stringify(config.paths)}
|
|
};
|
|
importScripts('${__uri(
|
|
'monaco-editor/min/vs/base/worker/workerMain.js'
|
|
)}');`)}`;
|
|
}
|
|
};
|
|
} else {
|
|
delete (window as any).MonacoEnvironment;
|
|
}
|
|
|
|
req(['vs/editor/editor.main'], function (ret: any) {
|
|
callback(ret);
|
|
});
|
|
}
|