UNPKG

kui-shell

Version:

This is the monorepo for Kui, the hybrid command-line/GUI electron-based Kubernetes tool

63 lines 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const debug_1 = require("debug"); const monaco = require("monaco-editor"); const core_1 = require("@kui-shell/core"); const language_scan_1 = require("../language-scan"); const defaults_1 = require("./defaults"); const debug = debug_1.default('plugins/editor/init/esm'); let initDone; self['MonacoEnvironment'] = { getWorkerUrl: function (moduleId, label) { const hash = window['_kuiWebpackHash']; const root = core_1.Settings.theme.resourceRoot || (window['_kuiWebpackResourceRoot'] !== '${resourceRoot}' ? window['_kuiWebpackResourceRoot'] : '.'); debug('monaco resource root', root); if (label === 'json') { return `${root}/json.worker.${hash}.bundle.js`; } if (label === 'css') { return `${root}/css.worker.${hash}.bundle.js`; } if (label === 'html') { return `${root}/html.worker.${hash}.bundle.js`; } if (label === 'typescript' || label === 'javascript') { return `${root}/ts.worker.${hash}.bundle.js`; } return `${root}/editor.worker.${hash}.bundle.js`; } }; exports.default = (editorWrapper, options) => { debug('init'); let editor; const ready = () => new Promise(resolve => { core_1.UI.injectCSS({ css: require('monaco-editor/min/vs/editor/editor.main.css').toString(), key: 'editor.monaco.core' }); const initEditor = () => { if (!initDone) { monaco.languages.typescript.javascriptDefaults.setCompilerOptions({ noLib: true, allowNonTsExtensions: true }); language_scan_1.default(monaco).forEach(({ language, provider }) => { monaco.languages.registerCompletionItemProvider(language, provider); }); initDone = true; } editor = monaco.editor.create(editorWrapper, Object.assign(defaults_1.default(options), options)); editor.clearDecorations = () => { debug('clearing decorations', editor.__cloudshell_decorations); const none = [{ range: new monaco.Range(1, 1, 1, 1), options: {} }]; editor.__cloudshell_decorations = editor.deltaDecorations(editor.__cloudshell_decorations || [], none); }; editorWrapper['editor'] = editor; resolve(editor); }; initEditor(); }); return ready(); }; //# sourceMappingURL=esm.js.map