UNPKG

monaco-editor

Version:
303 lines (300 loc) • 13.3 kB
import { typescriptVersion as typescriptVersion$1 } from './lib/typescriptServicesMetadata.js'; import '../../editor/browser/coreCommands.js'; import '../../editor/browser/widget/codeEditor/codeEditorWidget.js'; import '../../editor/browser/widget/diffEditor/diffEditor.contribution.js'; import '../../editor/contrib/anchorSelect/browser/anchorSelect.js'; import '../../editor/contrib/bracketMatching/browser/bracketMatching.js'; import '../../editor/contrib/caretOperations/browser/caretOperations.js'; import '../../editor/contrib/caretOperations/browser/transpose.js'; import '../../editor/contrib/clipboard/browser/clipboard.js'; import '../../editor/contrib/codeAction/browser/codeActionContributions.js'; import '../../editor/contrib/codelens/browser/codelensController.js'; import '../../editor/contrib/colorPicker/browser/colorPickerContribution.js'; import '../../editor/contrib/comment/browser/comment.js'; import '../../editor/contrib/contextmenu/browser/contextmenu.js'; import '../../editor/contrib/cursorUndo/browser/cursorUndo.js'; import '../../editor/contrib/dnd/browser/dnd.js'; import '../../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js'; import '../../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js'; import '../../editor/contrib/find/browser/findController.js'; import '../../editor/contrib/folding/browser/folding.js'; import '../../editor/contrib/fontZoom/browser/fontZoom.js'; import '../../editor/contrib/format/browser/formatActions.js'; import '../../editor/contrib/documentSymbols/browser/documentSymbols.js'; import '../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js'; import '../../editor/contrib/inlineProgress/browser/inlineProgress.js'; import '../../editor/contrib/gotoSymbol/browser/goToCommands.js'; import '../../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js'; import '../../editor/contrib/gotoError/browser/gotoError.js'; import '../../editor/contrib/gpu/browser/gpuActions.js'; import '../../editor/contrib/hover/browser/hoverContribution.js'; import '../../editor/contrib/indentation/browser/indentation.js'; import '../../editor/contrib/inlayHints/browser/inlayHintsContribution.js'; import '../../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js'; import '../../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js'; import '../../editor/contrib/lineSelection/browser/lineSelection.js'; import '../../editor/contrib/linesOperations/browser/linesOperations.js'; import '../../editor/contrib/linkedEditing/browser/linkedEditing.js'; import '../../editor/contrib/links/browser/links.js'; import '../../editor/contrib/longLinesHelper/browser/longLinesHelper.js'; import '../../editor/contrib/middleScroll/browser/middleScroll.contribution.js'; import '../../editor/contrib/multicursor/browser/multicursor.js'; import '../../editor/contrib/parameterHints/browser/parameterHints.js'; import '../../editor/contrib/placeholderText/browser/placeholderText.contribution.js'; import '../../editor/contrib/rename/browser/rename.js'; import '../../editor/contrib/sectionHeaders/browser/sectionHeaders.js'; import '../../editor/contrib/semanticTokens/browser/documentSemanticTokens.js'; import '../../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js'; import '../../editor/contrib/smartSelect/browser/smartSelect.js'; import '../../editor/contrib/snippet/browser/snippetController2.js'; import '../../editor/contrib/stickyScroll/browser/stickyScrollContribution.js'; import '../../editor/contrib/suggest/browser/suggestController.js'; import '../../editor/contrib/suggest/browser/suggestInlineCompletions.js'; import '../../editor/contrib/tokenization/browser/tokenization.js'; import '../../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js'; import '../../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js'; import '../../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js'; import '../../editor/contrib/wordHighlighter/browser/wordHighlighter.js'; import '../../editor/contrib/wordOperations/browser/wordOperations.js'; import '../../editor/contrib/wordPartOperations/browser/wordPartOperations.js'; import '../../editor/contrib/readOnlyMessage/browser/contribution.js'; import '../../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js'; import '../../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js'; import '../../editor/common/standaloneStrings.js'; import '../../base/browser/ui/codicons/codicon/codicon.css'; import '../../base/browser/ui/codicons/codicon/codicon-modifiers.css'; import '../../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js'; import '../../editor/standalone/browser/inspectTokens/inspectTokens.js'; import '../../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js'; import '../../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js'; import '../../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js'; import '../../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js'; import '../../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js'; import '../../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js'; import { languages, Emitter } from '../../editor/editor.api2.js'; var ModuleKind = /* @__PURE__ */ ((ModuleKind2) => { ModuleKind2[ModuleKind2["None"] = 0] = "None"; ModuleKind2[ModuleKind2["CommonJS"] = 1] = "CommonJS"; ModuleKind2[ModuleKind2["AMD"] = 2] = "AMD"; ModuleKind2[ModuleKind2["UMD"] = 3] = "UMD"; ModuleKind2[ModuleKind2["System"] = 4] = "System"; ModuleKind2[ModuleKind2["ES2015"] = 5] = "ES2015"; ModuleKind2[ModuleKind2["ESNext"] = 99] = "ESNext"; return ModuleKind2; })(ModuleKind || {}); var JsxEmit = /* @__PURE__ */ ((JsxEmit2) => { JsxEmit2[JsxEmit2["None"] = 0] = "None"; JsxEmit2[JsxEmit2["Preserve"] = 1] = "Preserve"; JsxEmit2[JsxEmit2["React"] = 2] = "React"; JsxEmit2[JsxEmit2["ReactNative"] = 3] = "ReactNative"; JsxEmit2[JsxEmit2["ReactJSX"] = 4] = "ReactJSX"; JsxEmit2[JsxEmit2["ReactJSXDev"] = 5] = "ReactJSXDev"; return JsxEmit2; })(JsxEmit || {}); var NewLineKind = /* @__PURE__ */ ((NewLineKind2) => { NewLineKind2[NewLineKind2["CarriageReturnLineFeed"] = 0] = "CarriageReturnLineFeed"; NewLineKind2[NewLineKind2["LineFeed"] = 1] = "LineFeed"; return NewLineKind2; })(NewLineKind || {}); var ScriptTarget = /* @__PURE__ */ ((ScriptTarget2) => { ScriptTarget2[ScriptTarget2["ES3"] = 0] = "ES3"; ScriptTarget2[ScriptTarget2["ES5"] = 1] = "ES5"; ScriptTarget2[ScriptTarget2["ES2015"] = 2] = "ES2015"; ScriptTarget2[ScriptTarget2["ES2016"] = 3] = "ES2016"; ScriptTarget2[ScriptTarget2["ES2017"] = 4] = "ES2017"; ScriptTarget2[ScriptTarget2["ES2018"] = 5] = "ES2018"; ScriptTarget2[ScriptTarget2["ES2019"] = 6] = "ES2019"; ScriptTarget2[ScriptTarget2["ES2020"] = 7] = "ES2020"; ScriptTarget2[ScriptTarget2["ESNext"] = 99] = "ESNext"; ScriptTarget2[ScriptTarget2["JSON"] = 100] = "JSON"; ScriptTarget2[ScriptTarget2["Latest"] = 99 /* ESNext */] = "Latest"; return ScriptTarget2; })(ScriptTarget || {}); var ModuleResolutionKind = /* @__PURE__ */ ((ModuleResolutionKind2) => { ModuleResolutionKind2[ModuleResolutionKind2["Classic"] = 1] = "Classic"; ModuleResolutionKind2[ModuleResolutionKind2["NodeJs"] = 2] = "NodeJs"; return ModuleResolutionKind2; })(ModuleResolutionKind || {}); class LanguageServiceDefaultsImpl { constructor(compilerOptions, diagnosticsOptions, workerOptions, inlayHintsOptions, modeConfiguration) { this._onDidChange = new Emitter(); this._onDidExtraLibsChange = new Emitter(); this._extraLibs = /* @__PURE__ */ Object.create(null); this._removedExtraLibs = /* @__PURE__ */ Object.create(null); this._eagerModelSync = false; this.setCompilerOptions(compilerOptions); this.setDiagnosticsOptions(diagnosticsOptions); this.setWorkerOptions(workerOptions); this.setInlayHintsOptions(inlayHintsOptions); this.setModeConfiguration(modeConfiguration); this._onDidExtraLibsChangeTimeout = -1; } get onDidChange() { return this._onDidChange.event; } get onDidExtraLibsChange() { return this._onDidExtraLibsChange.event; } get modeConfiguration() { return this._modeConfiguration; } get workerOptions() { return this._workerOptions; } get inlayHintsOptions() { return this._inlayHintsOptions; } getExtraLibs() { return this._extraLibs; } addExtraLib(content, _filePath) { let filePath; if (typeof _filePath === "undefined") { filePath = `ts:extralib-${Math.random().toString(36).substring(2, 15)}`; } else { filePath = _filePath; } if (this._extraLibs[filePath] && this._extraLibs[filePath].content === content) { return { dispose: () => { } }; } let myVersion = 1; if (this._removedExtraLibs[filePath]) { myVersion = this._removedExtraLibs[filePath] + 1; } if (this._extraLibs[filePath]) { myVersion = this._extraLibs[filePath].version + 1; } this._extraLibs[filePath] = { content, version: myVersion }; this._fireOnDidExtraLibsChangeSoon(); return { dispose: () => { let extraLib = this._extraLibs[filePath]; if (!extraLib) { return; } if (extraLib.version !== myVersion) { return; } delete this._extraLibs[filePath]; this._removedExtraLibs[filePath] = myVersion; this._fireOnDidExtraLibsChangeSoon(); } }; } setExtraLibs(libs) { for (const filePath in this._extraLibs) { this._removedExtraLibs[filePath] = this._extraLibs[filePath].version; } this._extraLibs = /* @__PURE__ */ Object.create(null); if (libs && libs.length > 0) { for (const lib of libs) { const filePath = lib.filePath || `ts:extralib-${Math.random().toString(36).substring(2, 15)}`; const content = lib.content; let myVersion = 1; if (this._removedExtraLibs[filePath]) { myVersion = this._removedExtraLibs[filePath] + 1; } this._extraLibs[filePath] = { content, version: myVersion }; } } this._fireOnDidExtraLibsChangeSoon(); } _fireOnDidExtraLibsChangeSoon() { if (this._onDidExtraLibsChangeTimeout !== -1) { return; } this._onDidExtraLibsChangeTimeout = window.setTimeout(() => { this._onDidExtraLibsChangeTimeout = -1; this._onDidExtraLibsChange.fire(void 0); }, 0); } getCompilerOptions() { return this._compilerOptions; } setCompilerOptions(options) { this._compilerOptions = options || /* @__PURE__ */ Object.create(null); this._onDidChange.fire(void 0); } getDiagnosticsOptions() { return this._diagnosticsOptions; } setDiagnosticsOptions(options) { this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null); this._onDidChange.fire(void 0); } setWorkerOptions(options) { this._workerOptions = options || /* @__PURE__ */ Object.create(null); this._onDidChange.fire(void 0); } setInlayHintsOptions(options) { this._inlayHintsOptions = options || /* @__PURE__ */ Object.create(null); this._onDidChange.fire(void 0); } setMaximumWorkerIdleTime(value) { } setEagerModelSync(value) { this._eagerModelSync = value; } getEagerModelSync() { return this._eagerModelSync; } setModeConfiguration(modeConfiguration) { this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null); this._onDidChange.fire(void 0); } } const typescriptVersion = typescriptVersion$1; const modeConfigurationDefault = { completionItems: true, hovers: true, documentSymbols: true, definitions: true, references: true, documentHighlights: true, rename: true, diagnostics: true, documentRangeFormattingEdits: true, signatureHelp: true, onTypeFormattingEdits: true, codeActions: true, inlayHints: true }; const typescriptDefaults = new LanguageServiceDefaultsImpl( { allowNonTsExtensions: true, target: 99 /* Latest */ }, { noSemanticValidation: false, noSyntaxValidation: false, onlyVisible: false }, {}, {}, modeConfigurationDefault ); const javascriptDefaults = new LanguageServiceDefaultsImpl( { allowNonTsExtensions: true, allowJs: true, target: 99 /* Latest */ }, { noSemanticValidation: true, noSyntaxValidation: false, onlyVisible: false }, {}, {}, modeConfigurationDefault ); const getTypeScriptWorker = () => { return getMode().then((mode) => mode.getTypeScriptWorker()); }; const getJavaScriptWorker = () => { return getMode().then((mode) => mode.getJavaScriptWorker()); }; function getMode() { return import('./tsMode.js'); } languages.onLanguage("typescript", () => { return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults)); }); languages.onLanguage("javascript", () => { return getMode().then((mode) => mode.setupJavaScript(javascriptDefaults)); }); export { JsxEmit, ModuleKind, ModuleResolutionKind, NewLineKind, ScriptTarget, getJavaScriptWorker, getTypeScriptWorker, javascriptDefaults, typescriptDefaults, typescriptVersion };