{"version":3,"file":"static/js/5554_98cadd62af78189d2b62.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditorService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/colorizer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditor.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneEditor.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchCompile.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneLanguages.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneLayoutService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/common/themes.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneThemeService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchCommon.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchLexer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/standalone/common/standaloneTheme.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './iPadShowKeyboard.css';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { isIOS } from '../../../../base/common/platform.js';\nexport class IPadShowKeyboard extends Disposable {\n constructor(editor) {\n super();\n this.editor = editor;\n this.widget = null;\n if (isIOS) {\n this._register(editor.onDidChangeConfiguration(() => this.update()));\n this.update();\n }\n }\n update() {\n const shouldHaveWidget = (!this.editor.getOption(91 /* EditorOption.readOnly */));\n if (!this.widget && shouldHaveWidget) {\n this.widget = new ShowKeyboardWidget(this.editor);\n }\n else if (this.widget && !shouldHaveWidget) {\n this.widget.dispose();\n this.widget = null;\n }\n }\n dispose() {\n super.dispose();\n if (this.widget) {\n this.widget.dispose();\n this.widget = null;\n }\n }\n}\nIPadShowKeyboard.ID = 'editor.contrib.iPadShowKeyboard';\nclass ShowKeyboardWidget extends Disposable {\n constructor(editor) {\n super();\n this.editor = editor;\n this._domNode = document.createElement('textarea');\n this._domNode.className = 'iPadShowKeyboard';\n this._register(dom.addDisposableListener(this._domNode, 'touchstart', (e) => {\n this.editor.focus();\n }));\n this._register(dom.addDisposableListener(this._domNode, 'focus', (e) => {\n this.editor.focus();\n }));\n this.editor.addOverlayWidget(this);\n }\n dispose() {\n this.editor.removeOverlayWidget(this);\n super.dispose();\n }\n // ----- IOverlayWidget API\n getId() {\n return ShowKeyboardWidget.ID;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return {\n preference: 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */\n };\n }\n}\nShowKeyboardWidget.ID = 'editor.contrib.ShowKeyboardWidget';\nregisterEditorContribution(IPadShowKeyboard.ID, IPadShowKeyboard, 3 /* EditorContributionInstantiation.Eventually */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InspectTokensController_1;\nimport './inspectTokens.css';\nimport { $, append, reset } from '../../../../base/browser/dom.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { TokenMetadata } from '../../../common/encodedTokenAttributes.js';\nimport { NullState, nullTokenize, nullTokenizeEncoded } from '../../../common/languages/nullTokenize.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { InspectTokensNLS } from '../../../common/standaloneStrings.js';\nlet InspectTokensController = InspectTokensController_1 = class InspectTokensController extends Disposable {\n static get(editor) {\n return editor.getContribution(InspectTokensController_1.ID);\n }\n constructor(editor, standaloneColorService, languageService) {\n super();\n this._editor = editor;\n this._languageService = languageService;\n this._widget = null;\n this._register(this._editor.onDidChangeModel((e) => this.stop()));\n this._register(this._editor.onDidChangeModelLanguage((e) => this.stop()));\n this._register(TokenizationRegistry.onDidChange((e) => this.stop()));\n this._register(this._editor.onKeyUp((e) => e.keyCode === 9 /* KeyCode.Escape */ && this.stop()));\n }\n dispose() {\n this.stop();\n super.dispose();\n }\n launch() {\n if (this._widget) {\n return;\n }\n if (!this._editor.hasModel()) {\n return;\n }\n this._widget = new InspectTokensWidget(this._editor, this._languageService);\n }\n stop() {\n if (this._widget) {\n this._widget.dispose();\n this._widget = null;\n }\n }\n};\nInspectTokensController.ID = 'editor.contrib.inspectTokens';\nInspectTokensController = InspectTokensController_1 = __decorate([\n __param(1, IStandaloneThemeService),\n __param(2, ILanguageService)\n], InspectTokensController);\nclass InspectTokens extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inspectTokens',\n label: InspectTokensNLS.inspectTokensAction,\n alias: 'Developer: Inspect Tokens',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n const controller = InspectTokensController.get(editor);\n controller === null || controller === void 0 ? void 0 : controller.launch();\n }\n}\nfunction renderTokenText(tokenText) {\n let result = '';\n for (let charIndex = 0, len = tokenText.length; charIndex < len; charIndex++) {\n const charCode = tokenText.charCodeAt(charIndex);\n switch (charCode) {\n case 9 /* CharCode.Tab */:\n result += '\\u2192'; // →\n break;\n case 32 /* CharCode.Space */:\n result += '\\u00B7'; // ·\n break;\n default:\n result += String.fromCharCode(charCode);\n }\n }\n return result;\n}\nfunction getSafeTokenizationSupport(languageIdCodec, languageId) {\n const tokenizationSupport = TokenizationRegistry.get(languageId);\n if (tokenizationSupport) {\n return tokenizationSupport;\n }\n const encodedLanguageId = languageIdCodec.encodeLanguageId(languageId);\n return {\n getInitialState: () => NullState,\n tokenize: (line, hasEOL, state) => nullTokenize(languageId, state),\n tokenizeEncoded: (line, hasEOL, state) => nullTokenizeEncoded(encodedLanguageId, state)\n };\n}\nclass InspectTokensWidget extends Disposable {\n constructor(editor, languageService) {\n super();\n // Editor.IContentWidget.allowEditorOverflow\n this.allowEditorOverflow = true;\n this._editor = editor;\n this._languageService = languageService;\n this._model = this._editor.getModel();\n this._domNode = document.createElement('div');\n this._domNode.className = 'tokens-inspect-widget';\n this._tokenizationSupport = getSafeTokenizationSupport(this._languageService.languageIdCodec, this._model.getLanguageId());\n this._compute(this._editor.getPosition());\n this._register(this._editor.onDidChangeCursorPosition((e) => this._compute(this._editor.getPosition())));\n this._editor.addContentWidget(this);\n }\n dispose() {\n this._editor.removeContentWidget(this);\n super.dispose();\n }\n getId() {\n return InspectTokensWidget._ID;\n }\n _compute(position) {\n const data = this._getTokensAtLine(position.lineNumber);\n let token1Index = 0;\n for (let i = data.tokens1.length - 1; i >= 0; i--) {\n const t = data.tokens1[i];\n if (position.column - 1 >= t.offset) {\n token1Index = i;\n break;\n }\n }\n let token2Index = 0;\n for (let i = (data.tokens2.length >>> 1); i >= 0; i--) {\n if (position.column - 1 >= data.tokens2[(i << 1)]) {\n token2Index = i;\n break;\n }\n }\n const lineContent = this._model.getLineContent(position.lineNumber);\n let tokenText = '';\n if (token1Index < data.tokens1.length) {\n const tokenStartIndex = data.tokens1[token1Index].offset;\n const tokenEndIndex = token1Index + 1 < data.tokens1.length ? data.tokens1[token1Index + 1].offset : lineContent.length;\n tokenText = lineContent.substring(tokenStartIndex, tokenEndIndex);\n }\n reset(this._domNode, $('h2.tm-token', undefined, renderTokenText(tokenText), $('span.tm-token-length', undefined, `${tokenText.length} ${tokenText.length === 1 ? 'char' : 'chars'}`)));\n append(this._domNode, $('hr.tokens-inspect-separator', { 'style': 'clear:both' }));\n const metadata = (token2Index << 1) + 1 < data.tokens2.length ? this._decodeMetadata(data.tokens2[(token2Index << 1) + 1]) : null;\n append(this._domNode, $('table.tm-metadata-table', undefined, $('tbody', undefined, $('tr', undefined, $('td.tm-metadata-key', undefined, 'language'), $('td.tm-metadata-value', undefined, `${metadata ? metadata.languageId : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'token type'), $('td.tm-metadata-value', undefined, `${metadata ? this._tokenTypeToString(metadata.tokenType) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'font style'), $('td.tm-metadata-value', undefined, `${metadata ? this._fontStyleToString(metadata.fontStyle) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'foreground'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.foreground) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'background'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.background) : '-?-'}`)))));\n append(this._domNode, $('hr.tokens-inspect-separator'));\n if (token1Index < data.tokens1.length) {\n append(this._domNode, $('span.tm-token-type', undefined, data.tokens1[token1Index].type));\n }\n this._editor.layoutContentWidget(this);\n }\n _decodeMetadata(metadata) {\n const colorMap = TokenizationRegistry.getColorMap();\n const languageId = TokenMetadata.getLanguageId(metadata);\n const tokenType = TokenMetadata.getTokenType(metadata);\n const fontStyle = TokenMetadata.getFontStyle(metadata);\n const foreground = TokenMetadata.getForeground(metadata);\n const background = TokenMetadata.getBackground(metadata);\n return {\n languageId: this._languageService.languageIdCodec.decodeLanguageId(languageId),\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: colorMap[foreground],\n background: colorMap[background]\n };\n }\n _tokenTypeToString(tokenType) {\n switch (tokenType) {\n case 0 /* StandardTokenType.Other */: return 'Other';\n case 1 /* StandardTokenType.Comment */: return 'Comment';\n case 2 /* StandardTokenType.String */: return 'String';\n case 3 /* StandardTokenType.RegEx */: return 'RegEx';\n default: return '??';\n }\n }\n _fontStyleToString(fontStyle) {\n let r = '';\n if (fontStyle & 1 /* FontStyle.Italic */) {\n r += 'italic ';\n }\n if (fontStyle & 2 /* FontStyle.Bold */) {\n r += 'bold ';\n }\n if (fontStyle & 4 /* FontStyle.Underline */) {\n r += 'underline ';\n }\n if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n r += 'strikethrough ';\n }\n if (r.length === 0) {\n r = '---';\n }\n return r;\n }\n _getTokensAtLine(lineNumber) {\n const stateBeforeLine = this._getStateBeforeLine(lineNumber);\n const tokenizationResult1 = this._tokenizationSupport.tokenize(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n const tokenizationResult2 = this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n return {\n startState: stateBeforeLine,\n tokens1: tokenizationResult1.tokens,\n tokens2: tokenizationResult2.tokens,\n endState: tokenizationResult1.endState\n };\n }\n _getStateBeforeLine(lineNumber) {\n let state = this._tokenizationSupport.getInitialState();\n for (let i = 1; i < lineNumber; i++) {\n const tokenizationResult = this._tokenizationSupport.tokenize(this._model.getLineContent(i), true, state);\n state = tokenizationResult.endState;\n }\n return state;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return {\n position: this._editor.getPosition(),\n preference: [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */]\n };\n }\n}\nInspectTokensWidget._ID = 'editor.contrib.inspectTokensWidget';\nregisterEditorContribution(InspectTokensController.ID, InspectTokensController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(InspectTokens);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { QuickCommandNLS } from '../../../common/standaloneStrings.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { AbstractEditorCommandsQuickAccessProvider } from '../../../contrib/quickAccess/browser/commandsQuickAccess.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nlet StandaloneCommandsQuickAccessProvider = class StandaloneCommandsQuickAccessProvider extends AbstractEditorCommandsQuickAccessProvider {\n get activeTextEditorControl() { var _a; return (_a = this.codeEditorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : undefined; }\n constructor(instantiationService, codeEditorService, keybindingService, commandService, telemetryService, dialogService) {\n super({ showAlias: false }, instantiationService, keybindingService, commandService, telemetryService, dialogService);\n this.codeEditorService = codeEditorService;\n }\n async getCommandPicks() {\n return this.getCodeEditorCommandPicks();\n }\n hasAdditionalCommandPicks() {\n return false;\n }\n async getAdditionalCommandPicks() {\n return [];\n }\n};\nStandaloneCommandsQuickAccessProvider = __decorate([\n __param(0, IInstantiationService),\n __param(1, ICodeEditorService),\n __param(2, IKeybindingService),\n __param(3, ICommandService),\n __param(4, ITelemetryService),\n __param(5, IDialogService)\n], StandaloneCommandsQuickAccessProvider);\nexport { StandaloneCommandsQuickAccessProvider };\nexport class GotoLineAction extends EditorAction {\n constructor() {\n super({\n id: GotoLineAction.ID,\n label: QuickCommandNLS.quickCommandActionLabel,\n alias: 'Command Palette',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 59 /* KeyCode.F1 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n contextMenuOpts: {\n group: 'z_commands',\n order: 1\n }\n });\n }\n run(accessor) {\n accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX);\n }\n}\nGotoLineAction.ID = 'editor.action.quickCommand';\nregisterEditorAction(GotoLineAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: StandaloneCommandsQuickAccessProvider,\n prefix: StandaloneCommandsQuickAccessProvider.PREFIX,\n helpEntries: [{ description: QuickCommandNLS.quickCommandHelp, commandId: GotoLineAction.ID }]\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { GoToLineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nlet StandaloneGotoLineQuickAccessProvider = class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {\n constructor(editorService) {\n super();\n this.editorService = editorService;\n this.onDidActiveTextEditorControlChange = Event.None;\n }\n get activeTextEditorControl() {\n var _a;\n return (_a = this.editorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : undefined;\n }\n};\nStandaloneGotoLineQuickAccessProvider = __decorate([\n __param(0, ICodeEditorService)\n], StandaloneGotoLineQuickAccessProvider);\nexport { StandaloneGotoLineQuickAccessProvider };\nexport class GotoLineAction extends EditorAction {\n constructor() {\n super({\n id: GotoLineAction.ID,\n label: GoToLineNLS.gotoLineActionLabel,\n alias: 'Go to Line/Column...',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 37 /* KeyCode.KeyG */,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 37 /* KeyCode.KeyG */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor) {\n accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX);\n }\n}\nGotoLineAction.ID = 'editor.action.gotoLine';\nregisterEditorAction(GotoLineAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: StandaloneGotoLineQuickAccessProvider,\n prefix: StandaloneGotoLineQuickAccessProvider.PREFIX,\n helpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport '../../../../base/browser/ui/codicons/codiconStyles.js'; // The codicon symbol styles are defined here and must be loaded\nimport '../../../contrib/symbolIcons/browser/symbolIcons.js'; // The codicon symbol colors are defined here and must be loaded to get colors\nimport { AbstractGotoSymbolQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoSymbolQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { QuickOutlineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService, ItemActivation } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IOutlineModelService } from '../../../contrib/documentSymbols/browser/outlineModel.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nlet StandaloneGotoSymbolQuickAccessProvider = class StandaloneGotoSymbolQuickAccessProvider extends AbstractGotoSymbolQuickAccessProvider {\n constructor(editorService, languageFeaturesService, outlineModelService) {\n super(languageFeaturesService, outlineModelService);\n this.editorService = editorService;\n this.onDidActiveTextEditorControlChange = Event.None;\n }\n get activeTextEditorControl() {\n var _a;\n return (_a = this.editorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : undefined;\n }\n};\nStandaloneGotoSymbolQuickAccessProvider = __decorate([\n __param(0, ICodeEditorService),\n __param(1, ILanguageFeaturesService),\n __param(2, IOutlineModelService)\n], StandaloneGotoSymbolQuickAccessProvider);\nexport { StandaloneGotoSymbolQuickAccessProvider };\nexport class GotoSymbolAction extends EditorAction {\n constructor() {\n super({\n id: GotoSymbolAction.ID,\n label: QuickOutlineNLS.quickOutlineActionLabel,\n alias: 'Go to Symbol...',\n precondition: EditorContextKeys.hasDocumentSymbolProvider,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 45 /* KeyCode.KeyO */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n contextMenuOpts: {\n group: 'navigation',\n order: 3\n }\n });\n }\n run(accessor) {\n accessor.get(IQuickInputService).quickAccess.show(AbstractGotoSymbolQuickAccessProvider.PREFIX, { itemActivation: ItemActivation.NONE });\n }\n}\nGotoSymbolAction.ID = 'editor.action.quickOutline';\nregisterEditorAction(GotoSymbolAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: StandaloneGotoSymbolQuickAccessProvider,\n prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX,\n helpEntries: [\n { description: QuickOutlineNLS.quickOutlineActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX, commandId: GotoSymbolAction.ID },\n { description: QuickOutlineNLS.quickOutlineByCategoryActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY }\n ]\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { QuickHelpNLS } from '../../../common/standaloneStrings.js';\nimport { HelpQuickAccessProvider } from '../../../../platform/quickinput/browser/helpQuickAccess.js';\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: HelpQuickAccessProvider,\n prefix: '',\n helpEntries: [{ description: QuickHelpNLS.helpQuickAccessActionLabel }]\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { ReferencesController } from '../../../contrib/gotoSymbol/browser/peek/referencesController.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\nlet StandaloneReferencesController = class StandaloneReferencesController extends ReferencesController {\n constructor(editor, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService) {\n super(true, editor, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService);\n }\n};\nStandaloneReferencesController = __decorate([\n __param(1, IContextKeyService),\n __param(2, ICodeEditorService),\n __param(3, INotificationService),\n __param(4, IInstantiationService),\n __param(5, IStorageService),\n __param(6, IConfigurationService)\n], StandaloneReferencesController);\nexport { StandaloneReferencesController };\nregisterEditorContribution(ReferencesController.ID, StandaloneReferencesController, 4 /* EditorContributionInstantiation.Lazy */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { windowOpenNoOpener } from '../../../base/browser/dom.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { AbstractCodeEditorService } from '../../browser/services/abstractCodeEditorService.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nlet StandaloneCodeEditorService = class StandaloneCodeEditorService extends AbstractCodeEditorService {\n constructor(contextKeyService, themeService) {\n super(themeService);\n this._register(this.onCodeEditorAdd(() => this._checkContextKey()));\n this._register(this.onCodeEditorRemove(() => this._checkContextKey()));\n this._editorIsOpen = contextKeyService.createKey('editorIsOpen', false);\n this._activeCodeEditor = null;\n this._register(this.registerCodeEditorOpenHandler(async (input, source, sideBySide) => {\n if (!source) {\n return null;\n }\n return this.doOpenEditor(source, input);\n }));\n }\n _checkContextKey() {\n let hasCodeEditor = false;\n for (const editor of this.listCodeEditors()) {\n if (!editor.isSimpleWidget) {\n hasCodeEditor = true;\n break;\n }\n }\n this._editorIsOpen.set(hasCodeEditor);\n }\n setActiveCodeEditor(activeCodeEditor) {\n this._activeCodeEditor = activeCodeEditor;\n }\n getActiveCodeEditor() {\n return this._activeCodeEditor;\n }\n doOpenEditor(editor, input) {\n const model = this.findModel(editor, input.resource);\n if (!model) {\n if (input.resource) {\n const schema = input.resource.scheme;\n if (schema === Schemas.http || schema === Schemas.https) {\n // This is a fully qualified http or https URL\n windowOpenNoOpener(input.resource.toString());\n return editor;\n }\n }\n return null;\n }\n const selection = (input.options ? input.options.selection : null);\n if (selection) {\n if (typeof selection.endLineNumber === 'number' && typeof selection.endColumn === 'number') {\n editor.setSelection(selection);\n editor.revealRangeInCenter(selection, 1 /* ScrollType.Immediate */);\n }\n else {\n const pos = {\n lineNumber: selection.startLineNumber,\n column: selection.startColumn\n };\n editor.setPosition(pos);\n editor.revealPositionInCenter(pos, 1 /* ScrollType.Immediate */);\n }\n }\n return editor;\n }\n findModel(editor, resource) {\n const model = editor.getModel();\n if (model && model.uri.toString() !== resource.toString()) {\n return null;\n }\n return model;\n }\n};\nStandaloneCodeEditorService = __decorate([\n __param(0, IContextKeyService),\n __param(1, IThemeService)\n], StandaloneCodeEditorService);\nexport { StandaloneCodeEditorService };\nregisterSingleton(ICodeEditorService, StandaloneCodeEditorService, 0 /* InstantiationType.Eager */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createTrustedTypesPolicy } from '../../../base/browser/trustedTypes.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { LineTokens } from '../../common/tokens/lineTokens.js';\nimport { RenderLineInput, renderViewLine2 as renderViewLine } from '../../common/viewLayout/viewLineRenderer.js';\nimport { ViewLineRenderingData } from '../../common/viewModel.js';\nimport { MonarchTokenizer } from '../common/monarch/monarchLexer.js';\nconst ttPolicy = createTrustedTypesPolicy('standaloneColorizer', { createHTML: value => value });\nexport class Colorizer {\n static colorizeElement(themeService, languageService, domNode, options) {\n options = options || {};\n const theme = options.theme || 'vs';\n const mimeType = options.mimeType || domNode.getAttribute('lang') || domNode.getAttribute('data-lang');\n if (!mimeType) {\n console.error('Mode not detected');\n return Promise.resolve();\n }\n const languageId = languageService.getLanguageIdByMimeType(mimeType) || mimeType;\n themeService.setTheme(theme);\n const text = domNode.firstChild ? domNode.firstChild.nodeValue : '';\n domNode.className += ' ' + theme;\n const render = (str) => {\n var _a;\n const trustedhtml = (_a = ttPolicy === null || ttPolicy === void 0 ? void 0 : ttPolicy.createHTML(str)) !== null && _a !== void 0 ? _a : str;\n domNode.innerHTML = trustedhtml;\n };\n return this.colorize(languageService, text || '', languageId, options).then(render, (err) => console.error(err));\n }\n static async colorize(languageService, text, languageId, options) {\n const languageIdCodec = languageService.languageIdCodec;\n let tabSize = 4;\n if (options && typeof options.tabSize === 'number') {\n tabSize = options.tabSize;\n }\n if (strings.startsWithUTF8BOM(text)) {\n text = text.substr(1);\n }\n const lines = strings.splitLines(text);\n if (!languageService.isRegisteredLanguageId(languageId)) {\n return _fakeColorize(lines, tabSize, languageIdCodec);\n }\n const tokenizationSupport = await TokenizationRegistry.getOrCreate(languageId);\n if (tokenizationSupport) {\n return _colorize(lines, tabSize, tokenizationSupport, languageIdCodec);\n }\n return _fakeColorize(lines, tabSize, languageIdCodec);\n }\n static colorizeLine(line, mightContainNonBasicASCII, mightContainRTL, tokens, tabSize = 4) {\n const isBasicASCII = ViewLineRenderingData.isBasicASCII(line, mightContainNonBasicASCII);\n const containsRTL = ViewLineRenderingData.containsRTL(line, isBasicASCII, mightContainRTL);\n const renderResult = renderViewLine(new RenderLineInput(false, true, line, false, isBasicASCII, containsRTL, 0, tokens, [], tabSize, 0, 0, 0, 0, -1, 'none', false, false, null));\n return renderResult.html;\n }\n static colorizeModelLine(model, lineNumber, tabSize = 4) {\n const content = model.getLineContent(lineNumber);\n model.tokenization.forceTokenization(lineNumber);\n const tokens = model.tokenization.getLineTokens(lineNumber);\n const inflatedTokens = tokens.inflate();\n return this.colorizeLine(content, model.mightContainNonBasicASCII(), model.mightContainRTL(), inflatedTokens, tabSize);\n }\n}\nfunction _colorize(lines, tabSize, tokenizationSupport, languageIdCodec) {\n return new Promise((c, e) => {\n const execute = () => {\n const result = _actualColorize(lines, tabSize, tokenizationSupport, languageIdCodec);\n if (tokenizationSupport instanceof MonarchTokenizer) {\n const status = tokenizationSupport.getLoadStatus();\n if (status.loaded === false) {\n status.promise.then(execute, e);\n return;\n }\n }\n c(result);\n };\n execute();\n });\n}\nfunction _fakeColorize(lines, tabSize, languageIdCodec) {\n let html = [];\n const defaultMetadata = ((0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n | (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n | (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\n const tokens = new Uint32Array(2);\n tokens[0] = 0;\n tokens[1] = defaultMetadata;\n for (let i = 0, length = lines.length; i < length; i++) {\n const line = lines[i];\n tokens[0] = line.length;\n const lineTokens = new LineTokens(tokens, line, languageIdCodec);\n const isBasicASCII = ViewLineRenderingData.isBasicASCII(line, /* check for basic ASCII */ true);\n const containsRTL = ViewLineRenderingData.containsRTL(line, isBasicASCII, /* check for RTL */ true);\n const renderResult = renderViewLine(new RenderLineInput(false, true, line, false, isBasicASCII, containsRTL, 0, lineTokens, [], tabSize, 0, 0, 0, 0, -1, 'none', false, false, null));\n html = html.concat(renderResult.html);\n html.push('
');\n }\n return html.join('');\n}\nfunction _actualColorize(lines, tabSize, tokenizationSupport, languageIdCodec) {\n let html = [];\n let state = tokenizationSupport.getInitialState();\n for (let i = 0, length = lines.length; i < length; i++) {\n const line = lines[i];\n const tokenizeResult = tokenizationSupport.tokenizeEncoded(line, true, state);\n LineTokens.convertToEndOffset(tokenizeResult.tokens, line.length);\n const lineTokens = new LineTokens(tokenizeResult.tokens, line, languageIdCodec);\n const isBasicASCII = ViewLineRenderingData.isBasicASCII(line, /* check for basic ASCII */ true);\n const containsRTL = ViewLineRenderingData.containsRTL(line, isBasicASCII, /* check for RTL */ true);\n const renderResult = renderViewLine(new RenderLineInput(false, true, line, false, isBasicASCII, containsRTL, 0, lineTokens.inflate(), [], tabSize, 0, 0, 0, 0, -1, 'none', false, false, null));\n html = html.concat(renderResult.html);\n html.push('
');\n state = tokenizeResult.endState;\n }\n return html.join('');\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as aria from '../../../base/browser/ui/aria/aria.js';\nimport { Disposable, toDisposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { CodeEditorWidget } from '../../browser/widget/codeEditor/codeEditorWidget.js';\nimport { InternalEditorAction } from '../../common/editorAction.js';\nimport { StandaloneKeybindingService, updateConfigurationService } from './standaloneServices.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { MenuId, MenuRegistry } from '../../../platform/actions/common/actions.js';\nimport { CommandsRegistry, ICommandService } from '../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { INotificationService } from '../../../platform/notification/common/notification.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nimport { IAccessibilityService } from '../../../platform/accessibility/common/accessibility.js';\nimport { StandaloneCodeEditorNLS } from '../../common/standaloneStrings.js';\nimport { IClipboardService } from '../../../platform/clipboard/common/clipboardService.js';\nimport { IEditorProgressService } from '../../../platform/progress/common/progress.js';\nimport { IModelService } from '../../common/services/model.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { StandaloneCodeEditorService } from './standaloneCodeEditorService.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../../common/languages/modesRegistry.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeaturesService } from '../../common/services/languageFeatures.js';\nimport { DiffEditorWidget } from '../../browser/widget/diffEditor/diffEditorWidget.js';\nimport { IAccessibilitySignalService } from '../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { setHoverDelegateFactory } from '../../../base/browser/ui/hover/hoverDelegateFactory.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../../platform/hover/browser/hover.js';\nimport { setBaseLayerHoverDelegate } from '../../../base/browser/ui/hover/hoverDelegate2.js';\nlet LAST_GENERATED_COMMAND_ID = 0;\nlet ariaDomNodeCreated = false;\n/**\n * Create ARIA dom node inside parent,\n * or only for the first editor instantiation inside document.body.\n * @param parent container element for ARIA dom node\n */\nfunction createAriaDomNode(parent) {\n if (!parent) {\n if (ariaDomNodeCreated) {\n return;\n }\n ariaDomNodeCreated = true;\n }\n aria.setARIAContainer(parent || mainWindow.document.body);\n}\n/**\n * A code editor to be used both by the standalone editor and the standalone diff editor.\n */\nlet StandaloneCodeEditor = class StandaloneCodeEditor extends CodeEditorWidget {\n constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n const options = { ..._options };\n options.ariaLabel = options.ariaLabel || StandaloneCodeEditorNLS.editorViewAccessibleLabel;\n options.ariaLabel = options.ariaLabel + ';' + (StandaloneCodeEditorNLS.accessibilityHelpMessage);\n super(domElement, options, {}, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n if (keybindingService instanceof StandaloneKeybindingService) {\n this._standaloneKeybindingService = keybindingService;\n }\n else {\n this._standaloneKeybindingService = null;\n }\n createAriaDomNode(options.ariaContainerElement);\n setHoverDelegateFactory((placement, enableInstantHover) => instantiationService.createInstance(WorkbenchHoverDelegate, placement, enableInstantHover, {}));\n setBaseLayerHoverDelegate(hoverService);\n }\n addCommand(keybinding, handler, context) {\n if (!this._standaloneKeybindingService) {\n console.warn('Cannot add command because the editor is configured with an unrecognized KeybindingService');\n return null;\n }\n const commandId = 'DYNAMIC_' + (++LAST_GENERATED_COMMAND_ID);\n const whenExpression = ContextKeyExpr.deserialize(context);\n this._standaloneKeybindingService.addDynamicKeybinding(commandId, keybinding, handler, whenExpression);\n return commandId;\n }\n createContextKey(key, defaultValue) {\n return this._contextKeyService.createKey(key, defaultValue);\n }\n addAction(_descriptor) {\n if ((typeof _descriptor.id !== 'string') || (typeof _descriptor.label !== 'string') || (typeof _descriptor.run !== 'function')) {\n throw new Error('Invalid action descriptor, `id`, `label` and `run` are required properties!');\n }\n if (!this._standaloneKeybindingService) {\n console.warn('Cannot add keybinding because the editor is configured with an unrecognized KeybindingService');\n return Disposable.None;\n }\n // Read descriptor options\n const id = _descriptor.id;\n const label = _descriptor.label;\n const precondition = ContextKeyExpr.and(ContextKeyExpr.equals('editorId', this.getId()), ContextKeyExpr.deserialize(_descriptor.precondition));\n const keybindings = _descriptor.keybindings;\n const keybindingsWhen = ContextKeyExpr.and(precondition, ContextKeyExpr.deserialize(_descriptor.keybindingContext));\n const contextMenuGroupId = _descriptor.contextMenuGroupId || null;\n const contextMenuOrder = _descriptor.contextMenuOrder || 0;\n const run = (_accessor, ...args) => {\n return Promise.resolve(_descriptor.run(this, ...args));\n };\n const toDispose = new DisposableStore();\n // Generate a unique id to allow the same descriptor.id across multiple editor instances\n const uniqueId = this.getId() + ':' + id;\n // Register the command\n toDispose.add(CommandsRegistry.registerCommand(uniqueId, run));\n // Register the context menu item\n if (contextMenuGroupId) {\n const menuItem = {\n command: {\n id: uniqueId,\n title: label\n },\n when: precondition,\n group: contextMenuGroupId,\n order: contextMenuOrder\n };\n toDispose.add(MenuRegistry.appendMenuItem(MenuId.EditorContext, menuItem));\n }\n // Register the keybindings\n if (Array.isArray(keybindings)) {\n for (const kb of keybindings) {\n toDispose.add(this._standaloneKeybindingService.addDynamicKeybinding(uniqueId, kb, run, keybindingsWhen));\n }\n }\n // Finally, register an internal editor action\n const internalAction = new InternalEditorAction(uniqueId, label, label, undefined, precondition, (...args) => Promise.resolve(_descriptor.run(this, ...args)), this._contextKeyService);\n // Store it under the original id, such that trigger with the original id will work\n this._actions.set(id, internalAction);\n toDispose.add(toDisposable(() => {\n this._actions.delete(id);\n }));\n return toDispose;\n }\n _triggerCommand(handlerId, payload) {\n if (this._codeEditorService instanceof StandaloneCodeEditorService) {\n // Help commands find this editor as the active editor\n try {\n this._codeEditorService.setActiveCodeEditor(this);\n super._triggerCommand(handlerId, payload);\n }\n finally {\n this._codeEditorService.setActiveCodeEditor(null);\n }\n }\n else {\n super._triggerCommand(handlerId, payload);\n }\n }\n};\nStandaloneCodeEditor = __decorate([\n __param(2, IInstantiationService),\n __param(3, ICodeEditorService),\n __param(4, ICommandService),\n __param(5, IContextKeyService),\n __param(6, IHoverService),\n __param(7, IKeybindingService),\n __param(8, IThemeService),\n __param(9, INotificationService),\n __param(10, IAccessibilityService),\n __param(11, ILanguageConfigurationService),\n __param(12, ILanguageFeaturesService)\n], StandaloneCodeEditor);\nexport { StandaloneCodeEditor };\nlet StandaloneEditor = class StandaloneEditor extends StandaloneCodeEditor {\n constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, configurationService, accessibilityService, modelService, languageService, languageConfigurationService, languageFeaturesService) {\n const options = { ..._options };\n updateConfigurationService(configurationService, options, false);\n const themeDomRegistration = themeService.registerEditorContainer(domElement);\n if (typeof options.theme === 'string') {\n themeService.setTheme(options.theme);\n }\n if (typeof options.autoDetectHighContrast !== 'undefined') {\n themeService.setAutoDetectHighContrast(Boolean(options.autoDetectHighContrast));\n }\n const _model = options.model;\n delete options.model;\n super(domElement, options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n this._configurationService = configurationService;\n this._standaloneThemeService = themeService;\n this._register(themeDomRegistration);\n let model;\n if (typeof _model === 'undefined') {\n const languageId = languageService.getLanguageIdByMimeType(options.language) || options.language || PLAINTEXT_LANGUAGE_ID;\n model = createTextModel(modelService, languageService, options.value || '', languageId, undefined);\n this._ownsModel = true;\n }\n else {\n model = _model;\n this._ownsModel = false;\n }\n this._attachModel(model);\n if (model) {\n const e = {\n oldModelUrl: null,\n newModelUrl: model.uri\n };\n this._onDidChangeModel.fire(e);\n }\n }\n dispose() {\n super.dispose();\n }\n updateOptions(newOptions) {\n updateConfigurationService(this._configurationService, newOptions, false);\n if (typeof newOptions.theme === 'string') {\n this._standaloneThemeService.setTheme(newOptions.theme);\n }\n if (typeof newOptions.autoDetectHighContrast !== 'undefined') {\n this._standaloneThemeService.setAutoDetectHighContrast(Boolean(newOptions.autoDetectHighContrast));\n }\n super.updateOptions(newOptions);\n }\n _postDetachModelCleanup(detachedModel) {\n super._postDetachModelCleanup(detachedModel);\n if (detachedModel && this._ownsModel) {\n detachedModel.dispose();\n this._ownsModel = false;\n }\n }\n};\nStandaloneEditor = __decorate([\n __param(2, IInstantiationService),\n __param(3, ICodeEditorService),\n __param(4, ICommandService),\n __param(5, IContextKeyService),\n __param(6, IHoverService),\n __param(7, IKeybindingService),\n __param(8, IStandaloneThemeService),\n __param(9, INotificationService),\n __param(10, IConfigurationService),\n __param(11, IAccessibilityService),\n __param(12, IModelService),\n __param(13, ILanguageService),\n __param(14, ILanguageConfigurationService),\n __param(15, ILanguageFeaturesService)\n], StandaloneEditor);\nexport { StandaloneEditor };\nlet StandaloneDiffEditor2 = class StandaloneDiffEditor2 extends DiffEditorWidget {\n constructor(domElement, _options, instantiationService, contextKeyService, codeEditorService, themeService, notificationService, configurationService, contextMenuService, editorProgressService, clipboardService, accessibilitySignalService) {\n const options = { ..._options };\n updateConfigurationService(configurationService, options, true);\n const themeDomRegistration = themeService.registerEditorContainer(domElement);\n if (typeof options.theme === 'string') {\n themeService.setTheme(options.theme);\n }\n if (typeof options.autoDetectHighContrast !== 'undefined') {\n themeService.setAutoDetectHighContrast(Boolean(options.autoDetectHighContrast));\n }\n super(domElement, options, {}, contextKeyService, instantiationService, codeEditorService, accessibilitySignalService, editorProgressService);\n this._configurationService = configurationService;\n this._standaloneThemeService = themeService;\n this._register(themeDomRegistration);\n }\n dispose() {\n super.dispose();\n }\n updateOptions(newOptions) {\n updateConfigurationService(this._configurationService, newOptions, true);\n if (typeof newOptions.theme === 'string') {\n this._standaloneThemeService.setTheme(newOptions.theme);\n }\n if (typeof newOptions.autoDetectHighContrast !== 'undefined') {\n this._standaloneThemeService.setAutoDetectHighContrast(Boolean(newOptions.autoDetectHighContrast));\n }\n super.updateOptions(newOptions);\n }\n _createInnerEditor(instantiationService, container, options) {\n return instantiationService.createInstance(StandaloneCodeEditor, container, options);\n }\n getOriginalEditor() {\n return super.getOriginalEditor();\n }\n getModifiedEditor() {\n return super.getModifiedEditor();\n }\n addCommand(keybinding, handler, context) {\n return this.getModifiedEditor().addCommand(keybinding, handler, context);\n }\n createContextKey(key, defaultValue) {\n return this.getModifiedEditor().createContextKey(key, defaultValue);\n }\n addAction(descriptor) {\n return this.getModifiedEditor().addAction(descriptor);\n }\n};\nStandaloneDiffEditor2 = __decorate([\n __param(2, IInstantiationService),\n __param(3, IContextKeyService),\n __param(4, ICodeEditorService),\n __param(5, IStandaloneThemeService),\n __param(6, INotificationService),\n __param(7, IConfigurationService),\n __param(8, IContextMenuService),\n __param(9, IEditorProgressService),\n __param(10, IClipboardService),\n __param(11, IAccessibilitySignalService)\n], StandaloneDiffEditor2);\nexport { StandaloneDiffEditor2 };\n/**\n * @internal\n */\nexport function createTextModel(modelService, languageService, value, languageId, uri) {\n value = value || '';\n if (!languageId) {\n const firstLF = value.indexOf('\\n');\n let firstLine = value;\n if (firstLF !== -1) {\n firstLine = value.substring(0, firstLF);\n }\n return doCreateModel(modelService, value, languageService.createByFilepathOrFirstLine(uri || null, firstLine), uri);\n }\n return doCreateModel(modelService, value, languageService.createById(languageId), uri);\n}\n/**\n * @internal\n */\nfunction doCreateModel(modelService, value, languageSelection, uri) {\n return modelService.createModel(value, languageSelection, uri);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { splitLines } from '../../../base/common/strings.js';\nimport { URI } from '../../../base/common/uri.js';\nimport './standalone-tokens.css';\nimport { FontMeasurements } from '../../browser/config/fontMeasurements.js';\nimport { EditorCommand } from '../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { createWebWorker as actualCreateWebWorker } from '../../browser/services/webWorker.js';\nimport { ApplyUpdateResult, ConfigurationChangedEvent, EditorOptions } from '../../common/config/editorOptions.js';\nimport { EditorZoom } from '../../common/config/editorZoom.js';\nimport { BareFontInfo, FontInfo } from '../../common/config/fontInfo.js';\nimport { EditorType } from '../../common/editorCommon.js';\nimport * as languages from '../../common/languages.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../../common/languages/modesRegistry.js';\nimport { NullState, nullTokenize } from '../../common/languages/nullTokenize.js';\nimport { FindMatch, TextModelResolvedOptions } from '../../common/model.js';\nimport { IModelService } from '../../common/services/model.js';\nimport * as standaloneEnums from '../../common/standalone/standaloneEnums.js';\nimport { Colorizer } from './colorizer.js';\nimport { StandaloneDiffEditor2, StandaloneEditor, createTextModel } from './standaloneCodeEditor.js';\nimport { StandaloneKeybindingService, StandaloneServices } from './standaloneServices.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { MenuId, MenuRegistry } from '../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../platform/commands/common/commands.js';\nimport { ContextKeyExpr } from '../../../platform/contextkey/common/contextkey.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { IMarkerService } from '../../../platform/markers/common/markers.js';\nimport { IOpenerService } from '../../../platform/opener/common/opener.js';\nimport { MultiDiffEditorWidget } from '../../browser/widget/multiDiffEditor/multiDiffEditorWidget.js';\n/**\n * Create a new editor under `domElement`.\n * `domElement` should be empty (not contain other dom nodes).\n * The editor will read the size of `domElement`.\n */\nexport function create(domElement, options, override) {\n const instantiationService = StandaloneServices.initialize(override || {});\n return instantiationService.createInstance(StandaloneEditor, domElement, options);\n}\n/**\n * Emitted when an editor is created.\n * Creating a diff editor might cause this listener to be invoked with the two editors.\n * @event\n */\nexport function onDidCreateEditor(listener) {\n const codeEditorService = StandaloneServices.get(ICodeEditorService);\n return codeEditorService.onCodeEditorAdd((editor) => {\n listener(editor);\n });\n}\n/**\n * Emitted when an diff editor is created.\n * @event\n */\nexport function onDidCreateDiffEditor(listener) {\n const codeEditorService = StandaloneServices.get(ICodeEditorService);\n return codeEditorService.onDiffEditorAdd((editor) => {\n listener(editor);\n });\n}\n/**\n * Get all the created editors.\n */\nexport function getEditors() {\n const codeEditorService = StandaloneServices.get(ICodeEditorService);\n return codeEditorService.listCodeEditors();\n}\n/**\n * Get all the created diff editors.\n */\nexport function getDiffEditors() {\n const codeEditorService = StandaloneServices.get(ICodeEditorService);\n return codeEditorService.listDiffEditors();\n}\n/**\n * Create a new diff editor under `domElement`.\n * `domElement` should be empty (not contain other dom nodes).\n * The editor will read the size of `domElement`.\n */\nexport function createDiffEditor(domElement, options, override) {\n const instantiationService = StandaloneServices.initialize(override || {});\n return instantiationService.createInstance(StandaloneDiffEditor2, domElement, options);\n}\nexport function createMultiFileDiffEditor(domElement, override) {\n const instantiationService = StandaloneServices.initialize(override || {});\n return new MultiDiffEditorWidget(domElement, {}, instantiationService);\n}\n/**\n * Add a command.\n */\nexport function addCommand(descriptor) {\n if ((typeof descriptor.id !== 'string') || (typeof descriptor.run !== 'function')) {\n throw new Error('Invalid command descriptor, `id` and `run` are required properties!');\n }\n return CommandsRegistry.registerCommand(descriptor.id, descriptor.run);\n}\n/**\n * Add an action to all editors.\n */\nexport function addEditorAction(descriptor) {\n if ((typeof descriptor.id !== 'string') || (typeof descriptor.label !== 'string') || (typeof descriptor.run !== 'function')) {\n throw new Error('Invalid action descriptor, `id`, `label` and `run` are required properties!');\n }\n const precondition = ContextKeyExpr.deserialize(descriptor.precondition);\n const run = (accessor, ...args) => {\n return EditorCommand.runEditorCommand(accessor, args, precondition, (accessor, editor, args) => Promise.resolve(descriptor.run(editor, ...args)));\n };\n const toDispose = new DisposableStore();\n // Register the command\n toDispose.add(CommandsRegistry.registerCommand(descriptor.id, run));\n // Register the context menu item\n if (descriptor.contextMenuGroupId) {\n const menuItem = {\n command: {\n id: descriptor.id,\n title: descriptor.label\n },\n when: precondition,\n group: descriptor.contextMenuGroupId,\n order: descriptor.contextMenuOrder || 0\n };\n toDispose.add(MenuRegistry.appendMenuItem(MenuId.EditorContext, menuItem));\n }\n // Register the keybindings\n if (Array.isArray(descriptor.keybindings)) {\n const keybindingService = StandaloneServices.get(IKeybindingService);\n if (!(keybindingService instanceof StandaloneKeybindingService)) {\n console.warn('Cannot add keybinding because the editor is configured with an unrecognized KeybindingService');\n }\n else {\n const keybindingsWhen = ContextKeyExpr.and(precondition, ContextKeyExpr.deserialize(descriptor.keybindingContext));\n toDispose.add(keybindingService.addDynamicKeybindings(descriptor.keybindings.map((keybinding) => {\n return {\n keybinding,\n command: descriptor.id,\n when: keybindingsWhen\n };\n })));\n }\n }\n return toDispose;\n}\n/**\n * Add a keybinding rule.\n */\nexport function addKeybindingRule(rule) {\n return addKeybindingRules([rule]);\n}\n/**\n * Add keybinding rules.\n */\nexport function addKeybindingRules(rules) {\n const keybindingService = StandaloneServices.get(IKeybindingService);\n if (!(keybindingService instanceof StandaloneKeybindingService)) {\n console.warn('Cannot add keybinding because the editor is configured with an unrecognized KeybindingService');\n return Disposable.None;\n }\n return keybindingService.addDynamicKeybindings(rules.map((rule) => {\n return {\n keybinding: rule.keybinding,\n command: rule.command,\n commandArgs: rule.commandArgs,\n when: ContextKeyExpr.deserialize(rule.when),\n };\n }));\n}\n/**\n * Create a new editor model.\n * You can specify the language that should be set for this model or let the language be inferred from the `uri`.\n */\nexport function createModel(value, language, uri) {\n const languageService = StandaloneServices.get(ILanguageService);\n const languageId = languageService.getLanguageIdByMimeType(language) || language;\n return createTextModel(StandaloneServices.get(IModelService), languageService, value, languageId, uri);\n}\n/**\n * Change the language for a model.\n */\nexport function setModelLanguage(model, mimeTypeOrLanguageId) {\n const languageService = StandaloneServices.get(ILanguageService);\n const languageId = languageService.getLanguageIdByMimeType(mimeTypeOrLanguageId) || mimeTypeOrLanguageId || PLAINTEXT_LANGUAGE_ID;\n model.setLanguage(languageService.createById(languageId));\n}\n/**\n * Set the markers for a model.\n */\nexport function setModelMarkers(model, owner, markers) {\n if (model) {\n const markerService = StandaloneServices.get(IMarkerService);\n markerService.changeOne(owner, model.uri, markers);\n }\n}\n/**\n * Remove all markers of an owner.\n */\nexport function removeAllMarkers(owner) {\n const markerService = StandaloneServices.get(IMarkerService);\n markerService.changeAll(owner, []);\n}\n/**\n * Get markers for owner and/or resource\n *\n * @returns list of markers\n */\nexport function getModelMarkers(filter) {\n const markerService = StandaloneServices.get(IMarkerService);\n return markerService.read(filter);\n}\n/**\n * Emitted when markers change for a model.\n * @event\n */\nexport function onDidChangeMarkers(listener) {\n const markerService = StandaloneServices.get(IMarkerService);\n return markerService.onMarkerChanged(listener);\n}\n/**\n * Get the model that has `uri` if it exists.\n */\nexport function getModel(uri) {\n const modelService = StandaloneServices.get(IModelService);\n return modelService.getModel(uri);\n}\n/**\n * Get all the created models.\n */\nexport function getModels() {\n const modelService = StandaloneServices.get(IModelService);\n return modelService.getModels();\n}\n/**\n * Emitted when a model is created.\n * @event\n */\nexport function onDidCreateModel(listener) {\n const modelService = StandaloneServices.get(IModelService);\n return modelService.onModelAdded(listener);\n}\n/**\n * Emitted right before a model is disposed.\n * @event\n */\nexport function onWillDisposeModel(listener) {\n const modelService = StandaloneServices.get(IModelService);\n return modelService.onModelRemoved(listener);\n}\n/**\n * Emitted when a different language is set to a model.\n * @event\n */\nexport function onDidChangeModelLanguage(listener) {\n const modelService = StandaloneServices.get(IModelService);\n return modelService.onModelLanguageChanged((e) => {\n listener({\n model: e.model,\n oldLanguage: e.oldLanguageId\n });\n });\n}\n/**\n * Create a new web worker that has model syncing capabilities built in.\n * Specify an AMD module to load that will `create` an object that will be proxied.\n */\nexport function createWebWorker(opts) {\n return actualCreateWebWorker(StandaloneServices.get(IModelService), StandaloneServices.get(ILanguageConfigurationService), opts);\n}\n/**\n * Colorize the contents of `domNode` using attribute `data-lang`.\n */\nexport function colorizeElement(domNode, options) {\n const languageService = StandaloneServices.get(ILanguageService);\n const themeService = StandaloneServices.get(IStandaloneThemeService);\n return Colorizer.colorizeElement(themeService, languageService, domNode, options).then(() => {\n themeService.registerEditorContainer(domNode);\n });\n}\n/**\n * Colorize `text` using language `languageId`.\n */\nexport function colorize(text, languageId, options) {\n const languageService = StandaloneServices.get(ILanguageService);\n const themeService = StandaloneServices.get(IStandaloneThemeService);\n themeService.registerEditorContainer(mainWindow.document.body);\n return Colorizer.colorize(languageService, text, languageId, options);\n}\n/**\n * Colorize a line in a model.\n */\nexport function colorizeModelLine(model, lineNumber, tabSize = 4) {\n const themeService = StandaloneServices.get(IStandaloneThemeService);\n themeService.registerEditorContainer(mainWindow.document.body);\n return Colorizer.colorizeModelLine(model, lineNumber, tabSize);\n}\n/**\n * @internal\n */\nfunction getSafeTokenizationSupport(language) {\n const tokenizationSupport = languages.TokenizationRegistry.get(language);\n if (tokenizationSupport) {\n return tokenizationSupport;\n }\n return {\n getInitialState: () => NullState,\n tokenize: (line, hasEOL, state) => nullTokenize(language, state)\n };\n}\n/**\n * Tokenize `text` using language `languageId`\n */\nexport function tokenize(text, languageId) {\n // Needed in order to get the mode registered for subsequent look-ups\n languages.TokenizationRegistry.getOrCreate(languageId);\n const tokenizationSupport = getSafeTokenizationSupport(languageId);\n const lines = splitLines(text);\n const result = [];\n let state = tokenizationSupport.getInitialState();\n for (let i = 0, len = lines.length; i < len; i++) {\n const line = lines[i];\n const tokenizationResult = tokenizationSupport.tokenize(line, true, state);\n result[i] = tokenizationResult.tokens;\n state = tokenizationResult.endState;\n }\n return result;\n}\n/**\n * Define a new theme or update an existing theme.\n */\nexport function defineTheme(themeName, themeData) {\n const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n standaloneThemeService.defineTheme(themeName, themeData);\n}\n/**\n * Switches to a theme.\n */\nexport function setTheme(themeName) {\n const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n standaloneThemeService.setTheme(themeName);\n}\n/**\n * Clears all cached font measurements and triggers re-measurement.\n */\nexport function remeasureFonts() {\n FontMeasurements.clearAllFontInfos();\n}\n/**\n * Register a command.\n */\nexport function registerCommand(id, handler) {\n return CommandsRegistry.registerCommand({ id, handler });\n}\n/**\n * Registers a handler that is called when a link is opened in any editor. The handler callback should return `true` if the link was handled and `false` otherwise.\n * The handler that was registered last will be called first when a link is opened.\n *\n * Returns a disposable that can unregister the opener again.\n */\nexport function registerLinkOpener(opener) {\n const openerService = StandaloneServices.get(IOpenerService);\n return openerService.registerOpener({\n async open(resource) {\n if (typeof resource === 'string') {\n resource = URI.parse(resource);\n }\n return opener.open(resource);\n }\n });\n}\n/**\n * Registers a handler that is called when a resource other than the current model should be opened in the editor (e.g. \"go to definition\").\n * The handler callback should return `true` if the request was handled and `false` otherwise.\n *\n * Returns a disposable that can unregister the opener again.\n *\n * If no handler is registered the default behavior is to do nothing for models other than the currently attached one.\n */\nexport function registerEditorOpener(opener) {\n const codeEditorService = StandaloneServices.get(ICodeEditorService);\n return codeEditorService.registerCodeEditorOpenHandler(async (input, source, sideBySide) => {\n var _a;\n if (!source) {\n return null;\n }\n const selection = (_a = input.options) === null || _a === void 0 ? void 0 : _a.selection;\n let selectionOrPosition;\n if (selection && typeof selection.endLineNumber === 'number' && typeof selection.endColumn === 'number') {\n selectionOrPosition = selection;\n }\n else if (selection) {\n selectionOrPosition = { lineNumber: selection.startLineNumber, column: selection.startColumn };\n }\n if (await opener.openCodeEditor(source, input.resource, selectionOrPosition)) {\n return source; // return source editor to indicate that this handler has successfully handled the opening\n }\n return null; // fallback to other registered handlers\n });\n}\n/**\n * @internal\n */\nexport function createMonacoEditorAPI() {\n return {\n // methods\n create: create,\n getEditors: getEditors,\n getDiffEditors: getDiffEditors,\n onDidCreateEditor: onDidCreateEditor,\n onDidCreateDiffEditor: onDidCreateDiffEditor,\n createDiffEditor: createDiffEditor,\n addCommand: addCommand,\n addEditorAction: addEditorAction,\n addKeybindingRule: addKeybindingRule,\n addKeybindingRules: addKeybindingRules,\n createModel: createModel,\n setModelLanguage: setModelLanguage,\n setModelMarkers: setModelMarkers,\n getModelMarkers: getModelMarkers,\n removeAllMarkers: removeAllMarkers,\n onDidChangeMarkers: onDidChangeMarkers,\n getModels: getModels,\n getModel: getModel,\n onDidCreateModel: onDidCreateModel,\n onWillDisposeModel: onWillDisposeModel,\n onDidChangeModelLanguage: onDidChangeModelLanguage,\n createWebWorker: createWebWorker,\n colorizeElement: colorizeElement,\n colorize: colorize,\n colorizeModelLine: colorizeModelLine,\n tokenize: tokenize,\n defineTheme: defineTheme,\n setTheme: setTheme,\n remeasureFonts: remeasureFonts,\n registerCommand: registerCommand,\n registerLinkOpener: registerLinkOpener,\n registerEditorOpener: registerEditorOpener,\n // enums\n AccessibilitySupport: standaloneEnums.AccessibilitySupport,\n ContentWidgetPositionPreference: standaloneEnums.ContentWidgetPositionPreference,\n CursorChangeReason: standaloneEnums.CursorChangeReason,\n DefaultEndOfLine: standaloneEnums.DefaultEndOfLine,\n EditorAutoIndentStrategy: standaloneEnums.EditorAutoIndentStrategy,\n EditorOption: standaloneEnums.EditorOption,\n EndOfLinePreference: standaloneEnums.EndOfLinePreference,\n EndOfLineSequence: standaloneEnums.EndOfLineSequence,\n MinimapPosition: standaloneEnums.MinimapPosition,\n MinimapSectionHeaderStyle: standaloneEnums.MinimapSectionHeaderStyle,\n MouseTargetType: standaloneEnums.MouseTargetType,\n OverlayWidgetPositionPreference: standaloneEnums.OverlayWidgetPositionPreference,\n OverviewRulerLane: standaloneEnums.OverviewRulerLane,\n GlyphMarginLane: standaloneEnums.GlyphMarginLane,\n RenderLineNumbersType: standaloneEnums.RenderLineNumbersType,\n RenderMinimap: standaloneEnums.RenderMinimap,\n ScrollbarVisibility: standaloneEnums.ScrollbarVisibility,\n ScrollType: standaloneEnums.ScrollType,\n TextEditorCursorBlinkingStyle: standaloneEnums.TextEditorCursorBlinkingStyle,\n TextEditorCursorStyle: standaloneEnums.TextEditorCursorStyle,\n TrackedRangeStickiness: standaloneEnums.TrackedRangeStickiness,\n WrappingIndent: standaloneEnums.WrappingIndent,\n InjectedTextCursorStops: standaloneEnums.InjectedTextCursorStops,\n PositionAffinity: standaloneEnums.PositionAffinity,\n ShowLightbulbIconMode: standaloneEnums.ShowLightbulbIconMode,\n // classes\n ConfigurationChangedEvent: ConfigurationChangedEvent,\n BareFontInfo: BareFontInfo,\n FontInfo: FontInfo,\n TextModelResolvedOptions: TextModelResolvedOptions,\n FindMatch: FindMatch,\n ApplyUpdateResult: ApplyUpdateResult,\n EditorZoom: EditorZoom,\n createMultiFileDiffEditor: createMultiFileDiffEditor,\n // vars\n EditorType: EditorType,\n EditorOptions: EditorOptions\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*\n * This module only exports 'compile' which compiles a JSON language definition\n * into a typed and checked ILexer definition.\n */\nimport * as monarchCommon from './monarchCommon.js';\n/*\n * Type helpers\n *\n * Note: this is just for sanity checks on the JSON description which is\n * helpful for the programmer. No checks are done anymore once the lexer is\n * already 'compiled and checked'.\n *\n */\nfunction isArrayOf(elemType, obj) {\n if (!obj) {\n return false;\n }\n if (!(Array.isArray(obj))) {\n return false;\n }\n for (const el of obj) {\n if (!(elemType(el))) {\n return false;\n }\n }\n return true;\n}\nfunction bool(prop, defValue) {\n if (typeof prop === 'boolean') {\n return prop;\n }\n return defValue;\n}\nfunction string(prop, defValue) {\n if (typeof (prop) === 'string') {\n return prop;\n }\n return defValue;\n}\nfunction arrayToHash(array) {\n const result = {};\n for (const e of array) {\n result[e] = true;\n }\n return result;\n}\nfunction createKeywordMatcher(arr, caseInsensitive = false) {\n if (caseInsensitive) {\n arr = arr.map(function (x) { return x.toLowerCase(); });\n }\n const hash = arrayToHash(arr);\n if (caseInsensitive) {\n return function (word) {\n return hash[word.toLowerCase()] !== undefined && hash.hasOwnProperty(word.toLowerCase());\n };\n }\n else {\n return function (word) {\n return hash[word] !== undefined && hash.hasOwnProperty(word);\n };\n }\n}\nfunction compileRegExp(lexer, str, handleSn) {\n // @@ must be interpreted as a literal @, so we replace all occurences of @@ with a placeholder character\n str = str.replace(/@@/g, `\\x01`);\n let n = 0;\n let hadExpansion;\n do {\n hadExpansion = false;\n str = str.replace(/@(\\w+)/g, function (s, attr) {\n hadExpansion = true;\n let sub = '';\n if (typeof (lexer[attr]) === 'string') {\n sub = lexer[attr];\n }\n else if (lexer[attr] && lexer[attr] instanceof RegExp) {\n sub = lexer[attr].source;\n }\n else {\n if (lexer[attr] === undefined) {\n throw monarchCommon.createError(lexer, 'language definition does not contain attribute \\'' + attr + '\\', used at: ' + str);\n }\n else {\n throw monarchCommon.createError(lexer, 'attribute reference \\'' + attr + '\\' must be a string, used at: ' + str);\n }\n }\n return (monarchCommon.empty(sub) ? '' : '(?:' + sub + ')');\n });\n n++;\n } while (hadExpansion && n < 5);\n // handle escaped @@\n str = str.replace(/\\x01/g, '@');\n const flags = (lexer.ignoreCase ? 'i' : '') + (lexer.unicode ? 'u' : '');\n // handle $Sn\n if (handleSn) {\n const match = str.match(/\\$[sS](\\d\\d?)/g);\n if (match) {\n let lastState = null;\n let lastRegEx = null;\n return (state) => {\n if (lastRegEx && lastState === state) {\n return lastRegEx;\n }\n lastState = state;\n lastRegEx = new RegExp(monarchCommon.substituteMatchesRe(lexer, str, state), flags);\n return lastRegEx;\n };\n }\n }\n return new RegExp(str, flags);\n}\n/**\n * Compiles guard functions for case matches.\n * This compiles 'cases' attributes into efficient match functions.\n *\n */\nfunction selectScrutinee(id, matches, state, num) {\n if (num < 0) {\n return id;\n }\n if (num < matches.length) {\n return matches[num];\n }\n if (num >= 100) {\n num = num - 100;\n const parts = state.split('.');\n parts.unshift(state);\n if (num < parts.length) {\n return parts[num];\n }\n }\n return null;\n}\nfunction createGuard(lexer, ruleName, tkey, val) {\n // get the scrutinee and pattern\n let scrut = -1; // -1: $!, 0-99: $n, 100+n: $Sn\n let oppat = tkey;\n let matches = tkey.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);\n if (matches) {\n if (matches[3]) { // if digits\n scrut = parseInt(matches[3]);\n if (matches[2]) {\n scrut = scrut + 100; // if [sS] present\n }\n }\n oppat = matches[4];\n }\n // get operator\n let op = '~';\n let pat = oppat;\n if (!oppat || oppat.length === 0) {\n op = '!=';\n pat = '';\n }\n else if (/^\\w*$/.test(pat)) { // just a word\n op = '==';\n }\n else {\n matches = oppat.match(/^(@|!@|~|!~|==|!=)(.*)$/);\n if (matches) {\n op = matches[1];\n pat = matches[2];\n }\n }\n // set the tester function\n let tester;\n // special case a regexp that matches just words\n if ((op === '~' || op === '!~') && /^(\\w|\\|)*$/.test(pat)) {\n const inWords = createKeywordMatcher(pat.split('|'), lexer.ignoreCase);\n tester = function (s) { return (op === '~' ? inWords(s) : !inWords(s)); };\n }\n else if (op === '@' || op === '!@') {\n const words = lexer[pat];\n if (!words) {\n throw monarchCommon.createError(lexer, 'the @ match target \\'' + pat + '\\' is not defined, in rule: ' + ruleName);\n }\n if (!(isArrayOf(function (elem) { return (typeof (elem) === 'string'); }, words))) {\n throw monarchCommon.createError(lexer, 'the @ match target \\'' + pat + '\\' must be an array of strings, in rule: ' + ruleName);\n }\n const inWords = createKeywordMatcher(words, lexer.ignoreCase);\n tester = function (s) { return (op === '@' ? inWords(s) : !inWords(s)); };\n }\n else if (op === '~' || op === '!~') {\n if (pat.indexOf('$') < 0) {\n // precompile regular expression\n const re = compileRegExp(lexer, '^' + pat + '$', false);\n tester = function (s) { return (op === '~' ? re.test(s) : !re.test(s)); };\n }\n else {\n tester = function (s, id, matches, state) {\n const re = compileRegExp(lexer, '^' + monarchCommon.substituteMatches(lexer, pat, id, matches, state) + '$', false);\n return re.test(s);\n };\n }\n }\n else { // if (op==='==' || op==='!=') {\n if (pat.indexOf('$') < 0) {\n const patx = monarchCommon.fixCase(lexer, pat);\n tester = function (s) { return (op === '==' ? s === patx : s !== patx); };\n }\n else {\n const patx = monarchCommon.fixCase(lexer, pat);\n tester = function (s, id, matches, state, eos) {\n const patexp = monarchCommon.substituteMatches(lexer, patx, id, matches, state);\n return (op === '==' ? s === patexp : s !== patexp);\n };\n }\n }\n // return the branch object\n if (scrut === -1) {\n return {\n name: tkey, value: val, test: function (id, matches, state, eos) {\n return tester(id, id, matches, state, eos);\n }\n };\n }\n else {\n return {\n name: tkey, value: val, test: function (id, matches, state, eos) {\n const scrutinee = selectScrutinee(id, matches, state, scrut);\n return tester(!scrutinee ? '' : scrutinee, id, matches, state, eos);\n }\n };\n }\n}\n/**\n * Compiles an action: i.e. optimize regular expressions and case matches\n * and do many sanity checks.\n *\n * This is called only during compilation but if the lexer definition\n * contains user functions as actions (which is usually not allowed), then this\n * may be called during lexing. It is important therefore to compile common cases efficiently\n */\nfunction compileAction(lexer, ruleName, action) {\n if (!action) {\n return { token: '' };\n }\n else if (typeof (action) === 'string') {\n return action; // { token: action };\n }\n else if (action.token || action.token === '') {\n if (typeof (action.token) !== 'string') {\n throw monarchCommon.createError(lexer, 'a \\'token\\' attribute must be of type string, in rule: ' + ruleName);\n }\n else {\n // only copy specific typed fields (only happens once during compile Lexer)\n const newAction = { token: action.token };\n if (action.token.indexOf('$') >= 0) {\n newAction.tokenSubst = true;\n }\n if (typeof (action.bracket) === 'string') {\n if (action.bracket === '@open') {\n newAction.bracket = 1 /* monarchCommon.MonarchBracket.Open */;\n }\n else if (action.bracket === '@close') {\n newAction.bracket = -1 /* monarchCommon.MonarchBracket.Close */;\n }\n else {\n throw monarchCommon.createError(lexer, 'a \\'bracket\\' attribute must be either \\'@open\\' or \\'@close\\', in rule: ' + ruleName);\n }\n }\n if (action.next) {\n if (typeof (action.next) !== 'string') {\n throw monarchCommon.createError(lexer, 'the next state must be a string value in rule: ' + ruleName);\n }\n else {\n let next = action.next;\n if (!/^(@pop|@push|@popall)$/.test(next)) {\n if (next[0] === '@') {\n next = next.substr(1); // peel off starting @ sign\n }\n if (next.indexOf('$') < 0) { // no dollar substitution, we can check if the state exists\n if (!monarchCommon.stateExists(lexer, monarchCommon.substituteMatches(lexer, next, '', [], ''))) {\n throw monarchCommon.createError(lexer, 'the next state \\'' + action.next + '\\' is not defined in rule: ' + ruleName);\n }\n }\n }\n newAction.next = next;\n }\n }\n if (typeof (action.goBack) === 'number') {\n newAction.goBack = action.goBack;\n }\n if (typeof (action.switchTo) === 'string') {\n newAction.switchTo = action.switchTo;\n }\n if (typeof (action.log) === 'string') {\n newAction.log = action.log;\n }\n if (typeof (action.nextEmbedded) === 'string') {\n newAction.nextEmbedded = action.nextEmbedded;\n lexer.usesEmbedded = true;\n }\n return newAction;\n }\n }\n else if (Array.isArray(action)) {\n const results = [];\n for (let i = 0, len = action.length; i < len; i++) {\n results[i] = compileAction(lexer, ruleName, action[i]);\n }\n return { group: results };\n }\n else if (action.cases) {\n // build an array of test cases\n const cases = [];\n // for each case, push a test function and result value\n for (const tkey in action.cases) {\n if (action.cases.hasOwnProperty(tkey)) {\n const val = compileAction(lexer, ruleName, action.cases[tkey]);\n // what kind of case\n if (tkey === '@default' || tkey === '@' || tkey === '') {\n cases.push({ test: undefined, value: val, name: tkey });\n }\n else if (tkey === '@eos') {\n cases.push({ test: function (id, matches, state, eos) { return eos; }, value: val, name: tkey });\n }\n else {\n cases.push(createGuard(lexer, ruleName, tkey, val)); // call separate function to avoid local variable capture\n }\n }\n }\n // create a matching function\n const def = lexer.defaultToken;\n return {\n test: function (id, matches, state, eos) {\n for (const _case of cases) {\n const didmatch = (!_case.test || _case.test(id, matches, state, eos));\n if (didmatch) {\n return _case.value;\n }\n }\n return def;\n }\n };\n }\n else {\n throw monarchCommon.createError(lexer, 'an action must be a string, an object with a \\'token\\' or \\'cases\\' attribute, or an array of actions; in rule: ' + ruleName);\n }\n}\n/**\n * Helper class for creating matching rules\n */\nclass Rule {\n constructor(name) {\n this.regex = new RegExp('');\n this.action = { token: '' };\n this.matchOnlyAtLineStart = false;\n this.name = '';\n this.name = name;\n }\n setRegex(lexer, re) {\n let sregex;\n if (typeof (re) === 'string') {\n sregex = re;\n }\n else if (re instanceof RegExp) {\n sregex = re.source;\n }\n else {\n throw monarchCommon.createError(lexer, 'rules must start with a match string or regular expression: ' + this.name);\n }\n this.matchOnlyAtLineStart = (sregex.length > 0 && sregex[0] === '^');\n this.name = this.name + ': ' + sregex;\n this.regex = compileRegExp(lexer, '^(?:' + (this.matchOnlyAtLineStart ? sregex.substr(1) : sregex) + ')', true);\n }\n setAction(lexer, act) {\n this.action = compileAction(lexer, this.name, act);\n }\n resolveRegex(state) {\n if (this.regex instanceof RegExp) {\n return this.regex;\n }\n else {\n return this.regex(state);\n }\n }\n}\n/**\n * Compiles a json description function into json where all regular expressions,\n * case matches etc, are compiled and all include rules are expanded.\n * We also compile the bracket definitions, supply defaults, and do many sanity checks.\n * If the 'jsonStrict' parameter is 'false', we allow at certain locations\n * regular expression objects and functions that get called during lexing.\n * (Currently we have no samples that need this so perhaps we should always have\n * jsonStrict to true).\n */\nexport function compile(languageId, json) {\n if (!json || typeof (json) !== 'object') {\n throw new Error('Monarch: expecting a language definition object');\n }\n // Create our lexer\n const lexer = {};\n lexer.languageId = languageId;\n lexer.includeLF = bool(json.includeLF, false);\n lexer.noThrow = false; // raise exceptions during compilation\n lexer.maxStack = 100;\n // Set standard fields: be defensive about types\n lexer.start = (typeof json.start === 'string' ? json.start : null);\n lexer.ignoreCase = bool(json.ignoreCase, false);\n lexer.unicode = bool(json.unicode, false);\n lexer.tokenPostfix = string(json.tokenPostfix, '.' + lexer.languageId);\n lexer.defaultToken = string(json.defaultToken, 'source');\n lexer.usesEmbedded = false; // becomes true if we find a nextEmbedded action\n // For calling compileAction later on\n const lexerMin = json;\n lexerMin.languageId = languageId;\n lexerMin.includeLF = lexer.includeLF;\n lexerMin.ignoreCase = lexer.ignoreCase;\n lexerMin.unicode = lexer.unicode;\n lexerMin.noThrow = lexer.noThrow;\n lexerMin.usesEmbedded = lexer.usesEmbedded;\n lexerMin.stateNames = json.tokenizer;\n lexerMin.defaultToken = lexer.defaultToken;\n // Compile an array of rules into newrules where RegExp objects are created.\n function addRules(state, newrules, rules) {\n for (const rule of rules) {\n let include = rule.include;\n if (include) {\n if (typeof (include) !== 'string') {\n throw monarchCommon.createError(lexer, 'an \\'include\\' attribute must be a string at: ' + state);\n }\n if (include[0] === '@') {\n include = include.substr(1); // peel off starting @\n }\n if (!json.tokenizer[include]) {\n throw monarchCommon.createError(lexer, 'include target \\'' + include + '\\' is not defined at: ' + state);\n }\n addRules(state + '.' + include, newrules, json.tokenizer[include]);\n }\n else {\n const newrule = new Rule(state);\n // Set up new rule attributes\n if (Array.isArray(rule) && rule.length >= 1 && rule.length <= 3) {\n newrule.setRegex(lexerMin, rule[0]);\n if (rule.length >= 3) {\n if (typeof (rule[1]) === 'string') {\n newrule.setAction(lexerMin, { token: rule[1], next: rule[2] });\n }\n else if (typeof (rule[1]) === 'object') {\n const rule1 = rule[1];\n rule1.next = rule[2];\n newrule.setAction(lexerMin, rule1);\n }\n else {\n throw monarchCommon.createError(lexer, 'a next state as the last element of a rule can only be given if the action is either an object or a string, at: ' + state);\n }\n }\n else {\n newrule.setAction(lexerMin, rule[1]);\n }\n }\n else {\n if (!rule.regex) {\n throw monarchCommon.createError(lexer, 'a rule must either be an array, or an object with a \\'regex\\' or \\'include\\' field at: ' + state);\n }\n if (rule.name) {\n if (typeof rule.name === 'string') {\n newrule.name = rule.name;\n }\n }\n if (rule.matchOnlyAtStart) {\n newrule.matchOnlyAtLineStart = bool(rule.matchOnlyAtLineStart, false);\n }\n newrule.setRegex(lexerMin, rule.regex);\n newrule.setAction(lexerMin, rule.action);\n }\n newrules.push(newrule);\n }\n }\n }\n // compile the tokenizer rules\n if (!json.tokenizer || typeof (json.tokenizer) !== 'object') {\n throw monarchCommon.createError(lexer, 'a language definition must define the \\'tokenizer\\' attribute as an object');\n }\n lexer.tokenizer = [];\n for (const key in json.tokenizer) {\n if (json.tokenizer.hasOwnProperty(key)) {\n if (!lexer.start) {\n lexer.start = key;\n }\n const rules = json.tokenizer[key];\n lexer.tokenizer[key] = new Array();\n addRules('tokenizer.' + key, lexer.tokenizer[key], rules);\n }\n }\n lexer.usesEmbedded = lexerMin.usesEmbedded; // can be set during compileAction\n // Set simple brackets\n if (json.brackets) {\n if (!(Array.isArray(json.brackets))) {\n throw monarchCommon.createError(lexer, 'the \\'brackets\\' attribute must be defined as an array');\n }\n }\n else {\n json.brackets = [\n { open: '{', close: '}', token: 'delimiter.curly' },\n { open: '[', close: ']', token: 'delimiter.square' },\n { open: '(', close: ')', token: 'delimiter.parenthesis' },\n { open: '<', close: '>', token: 'delimiter.angle' }\n ];\n }\n const brackets = [];\n for (const el of json.brackets) {\n let desc = el;\n if (desc && Array.isArray(desc) && desc.length === 3) {\n desc = { token: desc[2], open: desc[0], close: desc[1] };\n }\n if (desc.open === desc.close) {\n throw monarchCommon.createError(lexer, 'open and close brackets in a \\'brackets\\' attribute must be different: ' + desc.open +\n '\\n hint: use the \\'bracket\\' attribute if matching on equal brackets is required.');\n }\n if (typeof desc.open === 'string' && typeof desc.token === 'string' && typeof desc.close === 'string') {\n brackets.push({\n token: desc.token + lexer.tokenPostfix,\n open: monarchCommon.fixCase(lexer, desc.open),\n close: monarchCommon.fixCase(lexer, desc.close)\n });\n }\n else {\n throw monarchCommon.createError(lexer, 'every element in the \\'brackets\\' array must be a \\'{open,close,token}\\' object or array');\n }\n }\n lexer.brackets = brackets;\n // Disable throw so the syntax highlighter goes, no matter what\n lexer.noThrow = true;\n return lexer;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Color } from '../../../base/common/color.js';\nimport { Range } from '../../common/core/range.js';\nimport * as languages from '../../common/languages.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { ModesRegistry } from '../../common/languages/modesRegistry.js';\nimport { ILanguageFeaturesService } from '../../common/services/languageFeatures.js';\nimport * as standaloneEnums from '../../common/standalone/standaloneEnums.js';\nimport { StandaloneServices } from './standaloneServices.js';\nimport { compile } from '../common/monarch/monarchCompile.js';\nimport { MonarchTokenizer } from '../common/monarch/monarchLexer.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { IMarkerService } from '../../../platform/markers/common/markers.js';\n/**\n * Register information about a new language.\n */\nexport function register(language) {\n // Intentionally using the `ModesRegistry` here to avoid\n // instantiating services too quickly in the standalone editor.\n ModesRegistry.registerLanguage(language);\n}\n/**\n * Get the information of all the registered languages.\n */\nexport function getLanguages() {\n let result = [];\n result = result.concat(ModesRegistry.getLanguages());\n return result;\n}\nexport function getEncodedLanguageId(languageId) {\n const languageService = StandaloneServices.get(ILanguageService);\n return languageService.languageIdCodec.encodeLanguageId(languageId);\n}\n/**\n * An event emitted when a language is associated for the first time with a text model.\n * @event\n */\nexport function onLanguage(languageId, callback) {\n return StandaloneServices.withServices(() => {\n const languageService = StandaloneServices.get(ILanguageService);\n const disposable = languageService.onDidRequestRichLanguageFeatures((encounteredLanguageId) => {\n if (encounteredLanguageId === languageId) {\n // stop listening\n disposable.dispose();\n // invoke actual listener\n callback();\n }\n });\n return disposable;\n });\n}\n/**\n * An event emitted when a language is associated for the first time with a text model or\n * when a language is encountered during the tokenization of another language.\n * @event\n */\nexport function onLanguageEncountered(languageId, callback) {\n return StandaloneServices.withServices(() => {\n const languageService = StandaloneServices.get(ILanguageService);\n const disposable = languageService.onDidRequestBasicLanguageFeatures((encounteredLanguageId) => {\n if (encounteredLanguageId === languageId) {\n // stop listening\n disposable.dispose();\n // invoke actual listener\n callback();\n }\n });\n return disposable;\n });\n}\n/**\n * Set the editing configuration for a language.\n */\nexport function setLanguageConfiguration(languageId, configuration) {\n const languageService = StandaloneServices.get(ILanguageService);\n if (!languageService.isRegisteredLanguageId(languageId)) {\n throw new Error(`Cannot set configuration for unknown language ${languageId}`);\n }\n const languageConfigurationService = StandaloneServices.get(ILanguageConfigurationService);\n return languageConfigurationService.register(languageId, configuration, 100);\n}\n/**\n * @internal\n */\nexport class EncodedTokenizationSupportAdapter {\n constructor(languageId, actual) {\n this._languageId = languageId;\n this._actual = actual;\n }\n dispose() {\n // NOOP\n }\n getInitialState() {\n return this._actual.getInitialState();\n }\n tokenize(line, hasEOL, state) {\n if (typeof this._actual.tokenize === 'function') {\n return TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);\n }\n throw new Error('Not supported!');\n }\n tokenizeEncoded(line, hasEOL, state) {\n const result = this._actual.tokenizeEncoded(line, state);\n return new languages.EncodedTokenizationResult(result.tokens, result.endState);\n }\n}\n/**\n * @internal\n */\nexport class TokenizationSupportAdapter {\n constructor(_languageId, _actual, _languageService, _standaloneThemeService) {\n this._languageId = _languageId;\n this._actual = _actual;\n this._languageService = _languageService;\n this._standaloneThemeService = _standaloneThemeService;\n }\n dispose() {\n // NOOP\n }\n getInitialState() {\n return this._actual.getInitialState();\n }\n static _toClassicTokens(tokens, language) {\n const result = [];\n let previousStartIndex = 0;\n for (let i = 0, len = tokens.length; i < len; i++) {\n const t = tokens[i];\n let startIndex = t.startIndex;\n // Prevent issues stemming from a buggy external tokenizer.\n if (i === 0) {\n // Force first token to start at first index!\n startIndex = 0;\n }\n else if (startIndex < previousStartIndex) {\n // Force tokens to be after one another!\n startIndex = previousStartIndex;\n }\n result[i] = new languages.Token(startIndex, t.scopes, language);\n previousStartIndex = startIndex;\n }\n return result;\n }\n static adaptTokenize(language, actual, line, state) {\n const actualResult = actual.tokenize(line, state);\n const tokens = TokenizationSupportAdapter._toClassicTokens(actualResult.tokens, language);\n let endState;\n // try to save an object if possible\n if (actualResult.endState.equals(state)) {\n endState = state;\n }\n else {\n endState = actualResult.endState;\n }\n return new languages.TokenizationResult(tokens, endState);\n }\n tokenize(line, hasEOL, state) {\n return TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);\n }\n _toBinaryTokens(languageIdCodec, tokens) {\n const languageId = languageIdCodec.encodeLanguageId(this._languageId);\n const tokenTheme = this._standaloneThemeService.getColorTheme().tokenTheme;\n const result = [];\n let resultLen = 0;\n let previousStartIndex = 0;\n for (let i = 0, len = tokens.length; i < len; i++) {\n const t = tokens[i];\n const metadata = tokenTheme.match(languageId, t.scopes) | 1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */;\n if (resultLen > 0 && result[resultLen - 1] === metadata) {\n // same metadata\n continue;\n }\n let startIndex = t.startIndex;\n // Prevent issues stemming from a buggy external tokenizer.\n if (i === 0) {\n // Force first token to start at first index!\n startIndex = 0;\n }\n else if (startIndex < previousStartIndex) {\n // Force tokens to be after one another!\n startIndex = previousStartIndex;\n }\n result[resultLen++] = startIndex;\n result[resultLen++] = metadata;\n previousStartIndex = startIndex;\n }\n const actualResult = new Uint32Array(resultLen);\n for (let i = 0; i < resultLen; i++) {\n actualResult[i] = result[i];\n }\n return actualResult;\n }\n tokenizeEncoded(line, hasEOL, state) {\n const actualResult = this._actual.tokenize(line, state);\n const tokens = this._toBinaryTokens(this._languageService.languageIdCodec, actualResult.tokens);\n let endState;\n // try to save an object if possible\n if (actualResult.endState.equals(state)) {\n endState = state;\n }\n else {\n endState = actualResult.endState;\n }\n return new languages.EncodedTokenizationResult(tokens, endState);\n }\n}\nfunction isATokensProvider(provider) {\n return (typeof provider.getInitialState === 'function');\n}\nfunction isEncodedTokensProvider(provider) {\n return 'tokenizeEncoded' in provider;\n}\nfunction isThenable(obj) {\n return obj && typeof obj.then === 'function';\n}\n/**\n * Change the color map that is used for token colors.\n * Supported formats (hex): #RRGGBB, $RRGGBBAA, #RGB, #RGBA\n */\nexport function setColorMap(colorMap) {\n const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n if (colorMap) {\n const result = [null];\n for (let i = 1, len = colorMap.length; i < len; i++) {\n result[i] = Color.fromHex(colorMap[i]);\n }\n standaloneThemeService.setColorMapOverride(result);\n }\n else {\n standaloneThemeService.setColorMapOverride(null);\n }\n}\n/**\n * @internal\n */\nfunction createTokenizationSupportAdapter(languageId, provider) {\n if (isEncodedTokensProvider(provider)) {\n return new EncodedTokenizationSupportAdapter(languageId, provider);\n }\n else {\n return new TokenizationSupportAdapter(languageId, provider, StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService));\n }\n}\n/**\n * Register a tokens provider factory for a language. This tokenizer will be exclusive with a tokenizer\n * set using `setTokensProvider` or one created using `setMonarchTokensProvider`, but will work together\n * with a tokens provider set using `registerDocumentSemanticTokensProvider` or `registerDocumentRangeSemanticTokensProvider`.\n */\nexport function registerTokensProviderFactory(languageId, factory) {\n const adaptedFactory = new languages.LazyTokenizationSupport(async () => {\n const result = await Promise.resolve(factory.create());\n if (!result) {\n return null;\n }\n if (isATokensProvider(result)) {\n return createTokenizationSupportAdapter(languageId, result);\n }\n return new MonarchTokenizer(StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService), languageId, compile(languageId, result), StandaloneServices.get(IConfigurationService));\n });\n return languages.TokenizationRegistry.registerFactory(languageId, adaptedFactory);\n}\n/**\n * Set the tokens provider for a language (manual implementation). This tokenizer will be exclusive\n * with a tokenizer created using `setMonarchTokensProvider`, or with `registerTokensProviderFactory`,\n * but will work together with a tokens provider set using `registerDocumentSemanticTokensProvider`\n * or `registerDocumentRangeSemanticTokensProvider`.\n */\nexport function setTokensProvider(languageId, provider) {\n const languageService = StandaloneServices.get(ILanguageService);\n if (!languageService.isRegisteredLanguageId(languageId)) {\n throw new Error(`Cannot set tokens provider for unknown language ${languageId}`);\n }\n if (isThenable(provider)) {\n return registerTokensProviderFactory(languageId, { create: () => provider });\n }\n return languages.TokenizationRegistry.register(languageId, createTokenizationSupportAdapter(languageId, provider));\n}\n/**\n * Set the tokens provider for a language (monarch implementation). This tokenizer will be exclusive\n * with a tokenizer set using `setTokensProvider`, or with `registerTokensProviderFactory`, but will\n * work together with a tokens provider set using `registerDocumentSemanticTokensProvider` or\n * `registerDocumentRangeSemanticTokensProvider`.\n */\nexport function setMonarchTokensProvider(languageId, languageDef) {\n const create = (languageDef) => {\n return new MonarchTokenizer(StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService), languageId, compile(languageId, languageDef), StandaloneServices.get(IConfigurationService));\n };\n if (isThenable(languageDef)) {\n return registerTokensProviderFactory(languageId, { create: () => languageDef });\n }\n return languages.TokenizationRegistry.register(languageId, create(languageDef));\n}\n/**\n * Register a reference provider (used by e.g. reference search).\n */\nexport function registerReferenceProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.referenceProvider.register(languageSelector, provider);\n}\n/**\n * Register a rename provider (used by e.g. rename symbol).\n */\nexport function registerRenameProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.renameProvider.register(languageSelector, provider);\n}\n/**\n * Register a new symbol-name provider (e.g., when a symbol is being renamed, show new possible symbol-names)\n */\nexport function registerNewSymbolNameProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.newSymbolNamesProvider.register(languageSelector, provider);\n}\n/**\n * Register a signature help provider (used by e.g. parameter hints).\n */\nexport function registerSignatureHelpProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.signatureHelpProvider.register(languageSelector, provider);\n}\n/**\n * Register a hover provider (used by e.g. editor hover).\n */\nexport function registerHoverProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.hoverProvider.register(languageSelector, {\n provideHover: async (model, position, token, context) => {\n const word = model.getWordAtPosition(position);\n return Promise.resolve(provider.provideHover(model, position, token, context)).then((value) => {\n if (!value) {\n return undefined;\n }\n if (!value.range && word) {\n value.range = new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n }\n if (!value.range) {\n value.range = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n }\n return value;\n });\n }\n });\n}\n/**\n * Register a document symbol provider (used by e.g. outline).\n */\nexport function registerDocumentSymbolProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.documentSymbolProvider.register(languageSelector, provider);\n}\n/**\n * Register a document highlight provider (used by e.g. highlight occurrences).\n */\nexport function registerDocumentHighlightProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.documentHighlightProvider.register(languageSelector, provider);\n}\n/**\n * Register an linked editing range provider.\n */\nexport function registerLinkedEditingRangeProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.linkedEditingRangeProvider.register(languageSelector, provider);\n}\n/**\n * Register a definition provider (used by e.g. go to definition).\n */\nexport function registerDefinitionProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.definitionProvider.register(languageSelector, provider);\n}\n/**\n * Register a implementation provider (used by e.g. go to implementation).\n */\nexport function registerImplementationProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.implementationProvider.register(languageSelector, provider);\n}\n/**\n * Register a type definition provider (used by e.g. go to type definition).\n */\nexport function registerTypeDefinitionProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.typeDefinitionProvider.register(languageSelector, provider);\n}\n/**\n * Register a code lens provider (used by e.g. inline code lenses).\n */\nexport function registerCodeLensProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.codeLensProvider.register(languageSelector, provider);\n}\n/**\n * Register a code action provider (used by e.g. quick fix).\n */\nexport function registerCodeActionProvider(languageSelector, provider, metadata) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.codeActionProvider.register(languageSelector, {\n providedCodeActionKinds: metadata === null || metadata === void 0 ? void 0 : metadata.providedCodeActionKinds,\n documentation: metadata === null || metadata === void 0 ? void 0 : metadata.documentation,\n provideCodeActions: (model, range, context, token) => {\n const markerService = StandaloneServices.get(IMarkerService);\n const markers = markerService.read({ resource: model.uri }).filter(m => {\n return Range.areIntersectingOrTouching(m, range);\n });\n return provider.provideCodeActions(model, range, { markers, only: context.only, trigger: context.trigger }, token);\n },\n resolveCodeAction: provider.resolveCodeAction\n });\n}\n/**\n * Register a formatter that can handle only entire models.\n */\nexport function registerDocumentFormattingEditProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.documentFormattingEditProvider.register(languageSelector, provider);\n}\n/**\n * Register a formatter that can handle a range inside a model.\n */\nexport function registerDocumentRangeFormattingEditProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.documentRangeFormattingEditProvider.register(languageSelector, provider);\n}\n/**\n * Register a formatter than can do formatting as the user types.\n */\nexport function registerOnTypeFormattingEditProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.onTypeFormattingEditProvider.register(languageSelector, provider);\n}\n/**\n * Register a link provider that can find links in text.\n */\nexport function registerLinkProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.linkProvider.register(languageSelector, provider);\n}\n/**\n * Register a completion item provider (use by e.g. suggestions).\n */\nexport function registerCompletionItemProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.completionProvider.register(languageSelector, provider);\n}\n/**\n * Register a document color provider (used by Color Picker, Color Decorator).\n */\nexport function registerColorProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.colorProvider.register(languageSelector, provider);\n}\n/**\n * Register a folding range provider\n */\nexport function registerFoldingRangeProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.foldingRangeProvider.register(languageSelector, provider);\n}\n/**\n * Register a declaration provider\n */\nexport function registerDeclarationProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.declarationProvider.register(languageSelector, provider);\n}\n/**\n * Register a selection range provider\n */\nexport function registerSelectionRangeProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.selectionRangeProvider.register(languageSelector, provider);\n}\n/**\n * Register a document semantic tokens provider. A semantic tokens provider will complement and enhance a\n * simple top-down tokenizer. Simple top-down tokenizers can be set either via `setMonarchTokensProvider`\n * or `setTokensProvider`.\n *\n * For the best user experience, register both a semantic tokens provider and a top-down tokenizer.\n */\nexport function registerDocumentSemanticTokensProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.documentSemanticTokensProvider.register(languageSelector, provider);\n}\n/**\n * Register a document range semantic tokens provider. A semantic tokens provider will complement and enhance a\n * simple top-down tokenizer. Simple top-down tokenizers can be set either via `setMonarchTokensProvider`\n * or `setTokensProvider`.\n *\n * For the best user experience, register both a semantic tokens provider and a top-down tokenizer.\n */\nexport function registerDocumentRangeSemanticTokensProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.documentRangeSemanticTokensProvider.register(languageSelector, provider);\n}\n/**\n * Register an inline completions provider.\n */\nexport function registerInlineCompletionsProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.inlineCompletionsProvider.register(languageSelector, provider);\n}\nexport function registerInlineEditProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.inlineEditProvider.register(languageSelector, provider);\n}\n/**\n * Register an inlay hints provider.\n */\nexport function registerInlayHintsProvider(languageSelector, provider) {\n const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n return languageFeaturesService.inlayHintsProvider.register(languageSelector, provider);\n}\n/**\n * @internal\n */\nexport function createMonacoLanguagesAPI() {\n return {\n register: register,\n getLanguages: getLanguages,\n onLanguage: onLanguage,\n onLanguageEncountered: onLanguageEncountered,\n getEncodedLanguageId: getEncodedLanguageId,\n // provider methods\n setLanguageConfiguration: setLanguageConfiguration,\n setColorMap: setColorMap,\n registerTokensProviderFactory: registerTokensProviderFactory,\n setTokensProvider: setTokensProvider,\n setMonarchTokensProvider: setMonarchTokensProvider,\n registerReferenceProvider: registerReferenceProvider,\n registerRenameProvider: registerRenameProvider,\n registerNewSymbolNameProvider: registerNewSymbolNameProvider,\n registerCompletionItemProvider: registerCompletionItemProvider,\n registerSignatureHelpProvider: registerSignatureHelpProvider,\n registerHoverProvider: registerHoverProvider,\n registerDocumentSymbolProvider: registerDocumentSymbolProvider,\n registerDocumentHighlightProvider: registerDocumentHighlightProvider,\n registerLinkedEditingRangeProvider: registerLinkedEditingRangeProvider,\n registerDefinitionProvider: registerDefinitionProvider,\n registerImplementationProvider: registerImplementationProvider,\n registerTypeDefinitionProvider: registerTypeDefinitionProvider,\n registerCodeLensProvider: registerCodeLensProvider,\n registerCodeActionProvider: registerCodeActionProvider,\n registerDocumentFormattingEditProvider: registerDocumentFormattingEditProvider,\n registerDocumentRangeFormattingEditProvider: registerDocumentRangeFormattingEditProvider,\n registerOnTypeFormattingEditProvider: registerOnTypeFormattingEditProvider,\n registerLinkProvider: registerLinkProvider,\n registerColorProvider: registerColorProvider,\n registerFoldingRangeProvider: registerFoldingRangeProvider,\n registerDeclarationProvider: registerDeclarationProvider,\n registerSelectionRangeProvider: registerSelectionRangeProvider,\n registerDocumentSemanticTokensProvider: registerDocumentSemanticTokensProvider,\n registerDocumentRangeSemanticTokensProvider: registerDocumentRangeSemanticTokensProvider,\n registerInlineCompletionsProvider: registerInlineCompletionsProvider,\n registerInlineEditProvider: registerInlineEditProvider,\n registerInlayHintsProvider: registerInlayHintsProvider,\n // enums\n DocumentHighlightKind: standaloneEnums.DocumentHighlightKind,\n CompletionItemKind: standaloneEnums.CompletionItemKind,\n CompletionItemTag: standaloneEnums.CompletionItemTag,\n CompletionItemInsertTextRule: standaloneEnums.CompletionItemInsertTextRule,\n SymbolKind: standaloneEnums.SymbolKind,\n SymbolTag: standaloneEnums.SymbolTag,\n IndentAction: standaloneEnums.IndentAction,\n CompletionTriggerKind: standaloneEnums.CompletionTriggerKind,\n SignatureHelpTriggerKind: standaloneEnums.SignatureHelpTriggerKind,\n InlayHintKind: standaloneEnums.InlayHintKind,\n InlineCompletionTriggerKind: standaloneEnums.InlineCompletionTriggerKind,\n InlineEditTriggerKind: standaloneEnums.InlineEditTriggerKind,\n CodeActionTriggerType: standaloneEnums.CodeActionTriggerType,\n NewSymbolNameTag: standaloneEnums.NewSymbolNameTag,\n NewSymbolNameTriggerKind: standaloneEnums.NewSymbolNameTriggerKind,\n PartialAcceptTriggerKind: standaloneEnums.PartialAcceptTriggerKind,\n HoverVerbosityAction: standaloneEnums.HoverVerbosityAction,\n // classes\n FoldingRangeKind: languages.FoldingRangeKind,\n SelectedSuggestionInfo: languages.SelectedSuggestionInfo,\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../base/browser/dom.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { coalesce, firstOrDefault } from '../../../base/common/arrays.js';\nimport { Event } from '../../../base/common/event.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { ILayoutService } from '../../../platform/layout/browser/layoutService.js';\nlet StandaloneLayoutService = class StandaloneLayoutService {\n get mainContainer() {\n var _a, _b;\n return (_b = (_a = firstOrDefault(this._codeEditorService.listCodeEditors())) === null || _a === void 0 ? void 0 : _a.getContainerDomNode()) !== null && _b !== void 0 ? _b : mainWindow.document.body;\n }\n get activeContainer() {\n var _a, _b;\n const activeCodeEditor = (_a = this._codeEditorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : this._codeEditorService.getActiveCodeEditor();\n return (_b = activeCodeEditor === null || activeCodeEditor === void 0 ? void 0 : activeCodeEditor.getContainerDomNode()) !== null && _b !== void 0 ? _b : this.mainContainer;\n }\n get mainContainerDimension() {\n return dom.getClientArea(this.mainContainer);\n }\n get activeContainerDimension() {\n return dom.getClientArea(this.activeContainer);\n }\n get containers() {\n return coalesce(this._codeEditorService.listCodeEditors().map(codeEditor => codeEditor.getContainerDomNode()));\n }\n getContainer() {\n return this.activeContainer;\n }\n whenContainerStylesLoaded() { return undefined; }\n focus() {\n var _a;\n (_a = this._codeEditorService.getFocusedCodeEditor()) === null || _a === void 0 ? void 0 : _a.focus();\n }\n constructor(_codeEditorService) {\n this._codeEditorService = _codeEditorService;\n this.onDidLayoutMainContainer = Event.None;\n this.onDidLayoutActiveContainer = Event.None;\n this.onDidLayoutContainer = Event.None;\n this.onDidChangeActiveContainer = Event.None;\n this.onDidAddContainer = Event.None;\n this.mainContainerOffset = { top: 0, quickPickTop: 0 };\n this.activeContainerOffset = { top: 0, quickPickTop: 0 };\n }\n};\nStandaloneLayoutService = __decorate([\n __param(0, ICodeEditorService)\n], StandaloneLayoutService);\nlet EditorScopedLayoutService = class EditorScopedLayoutService extends StandaloneLayoutService {\n get mainContainer() {\n return this._container;\n }\n constructor(_container, codeEditorService) {\n super(codeEditorService);\n this._container = _container;\n }\n};\nEditorScopedLayoutService = __decorate([\n __param(1, ICodeEditorService)\n], EditorScopedLayoutService);\nexport { EditorScopedLayoutService };\nregisterSingleton(ILayoutService, StandaloneLayoutService, 1 /* InstantiationType.Delayed */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport './standaloneQuickInput.css';\nimport { Event } from '../../../../base/common/event.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { EditorScopedLayoutService } from '../standaloneLayoutService.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { QuickInputService } from '../../../../platform/quickinput/browser/quickInputService.js';\nimport { createSingleCallFunction } from '../../../../base/common/functional.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nlet EditorScopedQuickInputService = class EditorScopedQuickInputService extends QuickInputService {\n constructor(editor, instantiationService, contextKeyService, themeService, codeEditorService, configurationService) {\n super(instantiationService, contextKeyService, themeService, new EditorScopedLayoutService(editor.getContainerDomNode(), codeEditorService), configurationService);\n this.host = undefined;\n // Use the passed in code editor as host for the quick input widget\n const contribution = QuickInputEditorContribution.get(editor);\n if (contribution) {\n const widget = contribution.widget;\n this.host = {\n _serviceBrand: undefined,\n get mainContainer() { return widget.getDomNode(); },\n getContainer() { return widget.getDomNode(); },\n whenContainerStylesLoaded() { return undefined; },\n get containers() { return [widget.getDomNode()]; },\n get activeContainer() { return widget.getDomNode(); },\n get mainContainerDimension() { return editor.getLayoutInfo(); },\n get activeContainerDimension() { return editor.getLayoutInfo(); },\n get onDidLayoutMainContainer() { return editor.onDidLayoutChange; },\n get onDidLayoutActiveContainer() { return editor.onDidLayoutChange; },\n get onDidLayoutContainer() { return Event.map(editor.onDidLayoutChange, dimension => ({ container: widget.getDomNode(), dimension })); },\n get onDidChangeActiveContainer() { return Event.None; },\n get onDidAddContainer() { return Event.None; },\n get mainContainerOffset() { return { top: 0, quickPickTop: 0 }; },\n get activeContainerOffset() { return { top: 0, quickPickTop: 0 }; },\n focus: () => editor.focus()\n };\n }\n else {\n this.host = undefined;\n }\n }\n createController() {\n return super.createController(this.host);\n }\n};\nEditorScopedQuickInputService = __decorate([\n __param(1, IInstantiationService),\n __param(2, IContextKeyService),\n __param(3, IThemeService),\n __param(4, ICodeEditorService),\n __param(5, IConfigurationService)\n], EditorScopedQuickInputService);\nlet StandaloneQuickInputService = class StandaloneQuickInputService {\n get activeService() {\n const editor = this.codeEditorService.getFocusedCodeEditor();\n if (!editor) {\n throw new Error('Quick input service needs a focused editor to work.');\n }\n // Find the quick input implementation for the focused\n // editor or create it lazily if not yet created\n let quickInputService = this.mapEditorToService.get(editor);\n if (!quickInputService) {\n const newQuickInputService = quickInputService = this.instantiationService.createInstance(EditorScopedQuickInputService, editor);\n this.mapEditorToService.set(editor, quickInputService);\n createSingleCallFunction(editor.onDidDispose)(() => {\n newQuickInputService.dispose();\n this.mapEditorToService.delete(editor);\n });\n }\n return quickInputService;\n }\n get currentQuickInput() { return this.activeService.currentQuickInput; }\n get quickAccess() { return this.activeService.quickAccess; }\n constructor(instantiationService, codeEditorService) {\n this.instantiationService = instantiationService;\n this.codeEditorService = codeEditorService;\n this.mapEditorToService = new Map();\n }\n pick(picks, options = {}, token = CancellationToken.None) {\n return this.activeService /* TS fail */.pick(picks, options, token);\n }\n createQuickPick() {\n return this.activeService.createQuickPick();\n }\n createInputBox() {\n return this.activeService.createInputBox();\n }\n};\nStandaloneQuickInputService = __decorate([\n __param(0, IInstantiationService),\n __param(1, ICodeEditorService)\n], StandaloneQuickInputService);\nexport { StandaloneQuickInputService };\nexport class QuickInputEditorContribution {\n static get(editor) {\n return editor.getContribution(QuickInputEditorContribution.ID);\n }\n constructor(editor) {\n this.editor = editor;\n this.widget = new QuickInputEditorWidget(this.editor);\n }\n dispose() {\n this.widget.dispose();\n }\n}\nQuickInputEditorContribution.ID = 'editor.controller.quickInput';\nexport class QuickInputEditorWidget {\n constructor(codeEditor) {\n this.codeEditor = codeEditor;\n this.domNode = document.createElement('div');\n this.codeEditor.addOverlayWidget(this);\n }\n getId() {\n return QuickInputEditorWidget.ID;\n }\n getDomNode() {\n return this.domNode;\n }\n getPosition() {\n return { preference: 2 /* OverlayWidgetPositionPreference.TOP_CENTER */ };\n }\n dispose() {\n this.codeEditor.removeOverlayWidget(this);\n }\n}\nQuickInputEditorWidget.ID = 'editor.contrib.quickInputWidget';\nregisterEditorContribution(QuickInputEditorContribution.ID, QuickInputEditorContribution, 4 /* EditorContributionInstantiation.Lazy */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport '../../common/languages/languageConfigurationRegistry.js';\nimport './standaloneCodeEditorService.js';\nimport './standaloneLayoutService.js';\nimport '../../../platform/undoRedo/common/undoRedoService.js';\nimport '../../common/services/languageFeatureDebounce.js';\nimport '../../common/services/semanticTokensStylingService.js';\nimport '../../common/services/languageFeaturesService.js';\nimport '../../browser/services/hoverService/hoverService.js';\nimport * as strings from '../../../base/common/strings.js';\nimport * as dom from '../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../base/browser/keyboardEvent.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { KeyCodeChord, decodeKeybinding } from '../../../base/common/keybindings.js';\nimport { ImmortalReference, toDisposable, DisposableStore, Disposable, combinedDisposable } from '../../../base/common/lifecycle.js';\nimport { OS, isLinux, isMacintosh } from '../../../base/common/platform.js';\nimport Severity from '../../../base/common/severity.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { IBulkEditService, ResourceEdit, ResourceTextEdit } from '../../browser/services/bulkEditService.js';\nimport { isDiffEditorConfigurationKey, isEditorConfigurationKey } from '../../common/config/editorConfigurationSchema.js';\nimport { EditOperation } from '../../common/core/editOperation.js';\nimport { Position as Pos } from '../../common/core/position.js';\nimport { Range } from '../../common/core/range.js';\nimport { IModelService } from '../../common/services/model.js';\nimport { ITextModelService } from '../../common/services/resolverService.js';\nimport { ITextResourceConfigurationService, ITextResourcePropertiesService } from '../../common/services/textResourceConfiguration.js';\nimport { CommandsRegistry, ICommandService } from '../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { Configuration, ConfigurationModel, ConfigurationChangeEvent } from '../../../platform/configuration/common/configurationModels.js';\nimport { IContextKeyService } from '../../../platform/contextkey/common/contextkey.js';\nimport { IDialogService } from '../../../platform/dialogs/common/dialogs.js';\nimport { createDecorator, IInstantiationService } from '../../../platform/instantiation/common/instantiation.js';\nimport { AbstractKeybindingService } from '../../../platform/keybinding/common/abstractKeybindingService.js';\nimport { IKeybindingService } from '../../../platform/keybinding/common/keybinding.js';\nimport { KeybindingResolver } from '../../../platform/keybinding/common/keybindingResolver.js';\nimport { KeybindingsRegistry } from '../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ResolvedKeybindingItem } from '../../../platform/keybinding/common/resolvedKeybindingItem.js';\nimport { USLayoutResolvedKeybinding } from '../../../platform/keybinding/common/usLayoutResolvedKeybinding.js';\nimport { ILabelService } from '../../../platform/label/common/label.js';\nimport { INotificationService, NoOpNotification } from '../../../platform/notification/common/notification.js';\nimport { IEditorProgressService, IProgressService } from '../../../platform/progress/common/progress.js';\nimport { ITelemetryService } from '../../../platform/telemetry/common/telemetry.js';\nimport { IWorkspaceContextService, WorkspaceFolder, STANDALONE_EDITOR_WORKSPACE_ID } from '../../../platform/workspace/common/workspace.js';\nimport { ILayoutService } from '../../../platform/layout/browser/layoutService.js';\nimport { StandaloneServicesNLS } from '../../common/standaloneStrings.js';\nimport { basename } from '../../../base/common/resources.js';\nimport { ICodeEditorService } from '../../browser/services/codeEditorService.js';\nimport { ConsoleLogger, ILogService } from '../../../platform/log/common/log.js';\nimport { IWorkspaceTrustManagementService } from '../../../platform/workspace/common/workspaceTrust.js';\nimport { IContextMenuService, IContextViewService } from '../../../platform/contextview/browser/contextView.js';\nimport { ContextViewService } from '../../../platform/contextview/browser/contextViewService.js';\nimport { LanguageService } from '../../common/services/languageService.js';\nimport { ContextMenuService } from '../../../platform/contextview/browser/contextMenuService.js';\nimport { getSingletonServiceDescriptors, registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { OpenerService } from '../../browser/services/openerService.js';\nimport { IEditorWorkerService } from '../../common/services/editorWorker.js';\nimport { EditorWorkerService } from '../../browser/services/editorWorkerService.js';\nimport { ILanguageService } from '../../common/languages/language.js';\nimport { MarkerDecorationsService } from '../../common/services/markerDecorationsService.js';\nimport { IMarkerDecorationsService } from '../../common/services/markerDecorations.js';\nimport { ModelService } from '../../common/services/modelService.js';\nimport { StandaloneQuickInputService } from './quickInput/standaloneQuickInputService.js';\nimport { StandaloneThemeService } from './standaloneThemeService.js';\nimport { IStandaloneThemeService } from '../common/standaloneTheme.js';\nimport { AccessibilityService } from '../../../platform/accessibility/browser/accessibilityService.js';\nimport { IAccessibilityService } from '../../../platform/accessibility/common/accessibility.js';\nimport { IMenuService } from '../../../platform/actions/common/actions.js';\nimport { MenuService } from '../../../platform/actions/common/menuService.js';\nimport { BrowserClipboardService } from '../../../platform/clipboard/browser/clipboardService.js';\nimport { IClipboardService } from '../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyService } from '../../../platform/contextkey/browser/contextKeyService.js';\nimport { SyncDescriptor } from '../../../platform/instantiation/common/descriptors.js';\nimport { InstantiationService } from '../../../platform/instantiation/common/instantiationService.js';\nimport { ServiceCollection } from '../../../platform/instantiation/common/serviceCollection.js';\nimport { IListService, ListService } from '../../../platform/list/browser/listService.js';\nimport { IMarkerService } from '../../../platform/markers/common/markers.js';\nimport { MarkerService } from '../../../platform/markers/common/markerService.js';\nimport { IOpenerService } from '../../../platform/opener/common/opener.js';\nimport { IQuickInputService } from '../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService, InMemoryStorageService } from '../../../platform/storage/common/storage.js';\nimport { DefaultConfiguration } from '../../../platform/configuration/common/configurations.js';\nimport { IAccessibilitySignalService } from '../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { LogService } from '../../../platform/log/common/logService.js';\nimport { getEditorFeatures } from '../../common/editorFeatures.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { ResourceMap } from '../../../base/common/map.js';\nclass SimpleModel {\n constructor(model) {\n this.disposed = false;\n this.model = model;\n this._onWillDispose = new Emitter();\n }\n get textEditorModel() {\n return this.model;\n }\n dispose() {\n this.disposed = true;\n this._onWillDispose.fire();\n }\n}\nlet StandaloneTextModelService = class StandaloneTextModelService {\n constructor(modelService) {\n this.modelService = modelService;\n }\n createModelReference(resource) {\n const model = this.modelService.getModel(resource);\n if (!model) {\n return Promise.reject(new Error(`Model not found`));\n }\n return Promise.resolve(new ImmortalReference(new SimpleModel(model)));\n }\n};\nStandaloneTextModelService = __decorate([\n __param(0, IModelService)\n], StandaloneTextModelService);\nclass StandaloneEditorProgressService {\n show() {\n return StandaloneEditorProgressService.NULL_PROGRESS_RUNNER;\n }\n async showWhile(promise, delay) {\n await promise;\n }\n}\nStandaloneEditorProgressService.NULL_PROGRESS_RUNNER = {\n done: () => { },\n total: () => { },\n worked: () => { }\n};\nclass StandaloneProgressService {\n withProgress(_options, task, onDidCancel) {\n return task({\n report: () => { },\n });\n }\n}\nclass StandaloneEnvironmentService {\n constructor() {\n this.isExtensionDevelopment = false;\n this.isBuilt = false;\n }\n}\nclass StandaloneDialogService {\n async confirm(confirmation) {\n const confirmed = this.doConfirm(confirmation.message, confirmation.detail);\n return {\n confirmed,\n checkboxChecked: false // unsupported\n };\n }\n doConfirm(message, detail) {\n let messageText = message;\n if (detail) {\n messageText = messageText + '\\n\\n' + detail;\n }\n return mainWindow.confirm(messageText);\n }\n async prompt(prompt) {\n var _a, _b;\n let result = undefined;\n const confirmed = this.doConfirm(prompt.message, prompt.detail);\n if (confirmed) {\n const promptButtons = [...((_a = prompt.buttons) !== null && _a !== void 0 ? _a : [])];\n if (prompt.cancelButton && typeof prompt.cancelButton !== 'string' && typeof prompt.cancelButton !== 'boolean') {\n promptButtons.push(prompt.cancelButton);\n }\n result = await ((_b = promptButtons[0]) === null || _b === void 0 ? void 0 : _b.run({ checkboxChecked: false }));\n }\n return { result };\n }\n async error(message, detail) {\n await this.prompt({ type: Severity.Error, message, detail });\n }\n}\nexport class StandaloneNotificationService {\n info(message) {\n return this.notify({ severity: Severity.Info, message });\n }\n warn(message) {\n return this.notify({ severity: Severity.Warning, message });\n }\n error(error) {\n return this.notify({ severity: Severity.Error, message: error });\n }\n notify(notification) {\n switch (notification.severity) {\n case Severity.Error:\n console.error(notification.message);\n break;\n case Severity.Warning:\n console.warn(notification.message);\n break;\n default:\n console.log(notification.message);\n break;\n }\n return StandaloneNotificationService.NO_OP;\n }\n prompt(severity, message, choices, options) {\n return StandaloneNotificationService.NO_OP;\n }\n status(message, options) {\n return Disposable.None;\n }\n}\nStandaloneNotificationService.NO_OP = new NoOpNotification();\nlet StandaloneCommandService = class StandaloneCommandService {\n constructor(instantiationService) {\n this._onWillExecuteCommand = new Emitter();\n this._onDidExecuteCommand = new Emitter();\n this.onDidExecuteCommand = this._onDidExecuteCommand.event;\n this._instantiationService = instantiationService;\n }\n executeCommand(id, ...args) {\n const command = CommandsRegistry.getCommand(id);\n if (!command) {\n return Promise.reject(new Error(`command '${id}' not found`));\n }\n try {\n this._onWillExecuteCommand.fire({ commandId: id, args });\n const result = this._instantiationService.invokeFunction.apply(this._instantiationService, [command.handler, ...args]);\n this._onDidExecuteCommand.fire({ commandId: id, args });\n return Promise.resolve(result);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n};\nStandaloneCommandService = __decorate([\n __param(0, IInstantiationService)\n], StandaloneCommandService);\nexport { StandaloneCommandService };\nlet StandaloneKeybindingService = class StandaloneKeybindingService extends AbstractKeybindingService {\n constructor(contextKeyService, commandService, telemetryService, notificationService, logService, codeEditorService) {\n super(contextKeyService, commandService, telemetryService, notificationService, logService);\n this._cachedResolver = null;\n this._dynamicKeybindings = [];\n this._domNodeListeners = [];\n const addContainer = (domNode) => {\n const disposables = new DisposableStore();\n // for standard keybindings\n disposables.add(dom.addDisposableListener(domNode, dom.EventType.KEY_DOWN, (e) => {\n const keyEvent = new StandardKeyboardEvent(e);\n const shouldPreventDefault = this._dispatch(keyEvent, keyEvent.target);\n if (shouldPreventDefault) {\n keyEvent.preventDefault();\n keyEvent.stopPropagation();\n }\n }));\n // for single modifier chord keybindings (e.g. shift shift)\n disposables.add(dom.addDisposableListener(domNode, dom.EventType.KEY_UP, (e) => {\n const keyEvent = new StandardKeyboardEvent(e);\n const shouldPreventDefault = this._singleModifierDispatch(keyEvent, keyEvent.target);\n if (shouldPreventDefault) {\n keyEvent.preventDefault();\n }\n }));\n this._domNodeListeners.push(new DomNodeListeners(domNode, disposables));\n };\n const removeContainer = (domNode) => {\n for (let i = 0; i < this._domNodeListeners.length; i++) {\n const domNodeListeners = this._domNodeListeners[i];\n if (domNodeListeners.domNode === domNode) {\n this._domNodeListeners.splice(i, 1);\n domNodeListeners.dispose();\n }\n }\n };\n const addCodeEditor = (codeEditor) => {\n if (codeEditor.getOption(61 /* EditorOption.inDiffEditor */)) {\n return;\n }\n addContainer(codeEditor.getContainerDomNode());\n };\n const removeCodeEditor = (codeEditor) => {\n if (codeEditor.getOption(61 /* EditorOption.inDiffEditor */)) {\n return;\n }\n removeContainer(codeEditor.getContainerDomNode());\n };\n this._register(codeEditorService.onCodeEditorAdd(addCodeEditor));\n this._register(codeEditorService.onCodeEditorRemove(removeCodeEditor));\n codeEditorService.listCodeEditors().forEach(addCodeEditor);\n const addDiffEditor = (diffEditor) => {\n addContainer(diffEditor.getContainerDomNode());\n };\n const removeDiffEditor = (diffEditor) => {\n removeContainer(diffEditor.getContainerDomNode());\n };\n this._register(codeEditorService.onDiffEditorAdd(addDiffEditor));\n this._register(codeEditorService.onDiffEditorRemove(removeDiffEditor));\n codeEditorService.listDiffEditors().forEach(addDiffEditor);\n }\n addDynamicKeybinding(command, keybinding, handler, when) {\n return combinedDisposable(CommandsRegistry.registerCommand(command, handler), this.addDynamicKeybindings([{\n keybinding,\n command,\n when\n }]));\n }\n addDynamicKeybindings(rules) {\n const entries = rules.map((rule) => {\n var _a;\n const keybinding = decodeKeybinding(rule.keybinding, OS);\n return {\n keybinding,\n command: (_a = rule.command) !== null && _a !== void 0 ? _a : null,\n commandArgs: rule.commandArgs,\n when: rule.when,\n weight1: 1000,\n weight2: 0,\n extensionId: null,\n isBuiltinExtension: false\n };\n });\n this._dynamicKeybindings = this._dynamicKeybindings.concat(entries);\n this.updateResolver();\n return toDisposable(() => {\n // Search the first entry and remove them all since they will be contiguous\n for (let i = 0; i < this._dynamicKeybindings.length; i++) {\n if (this._dynamicKeybindings[i] === entries[0]) {\n this._dynamicKeybindings.splice(i, entries.length);\n this.updateResolver();\n return;\n }\n }\n });\n }\n updateResolver() {\n this._cachedResolver = null;\n this._onDidUpdateKeybindings.fire();\n }\n _getResolver() {\n if (!this._cachedResolver) {\n const defaults = this._toNormalizedKeybindingItems(KeybindingsRegistry.getDefaultKeybindings(), true);\n const overrides = this._toNormalizedKeybindingItems(this._dynamicKeybindings, false);\n this._cachedResolver = new KeybindingResolver(defaults, overrides, (str) => this._log(str));\n }\n return this._cachedResolver;\n }\n _documentHasFocus() {\n return mainWindow.document.hasFocus();\n }\n _toNormalizedKeybindingItems(items, isDefault) {\n const result = [];\n let resultLen = 0;\n for (const item of items) {\n const when = item.when || undefined;\n const keybinding = item.keybinding;\n if (!keybinding) {\n // This might be a removal keybinding item in user settings => accept it\n result[resultLen++] = new ResolvedKeybindingItem(undefined, item.command, item.commandArgs, when, isDefault, null, false);\n }\n else {\n const resolvedKeybindings = USLayoutResolvedKeybinding.resolveKeybinding(keybinding, OS);\n for (const resolvedKeybinding of resolvedKeybindings) {\n result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybinding, item.command, item.commandArgs, when, isDefault, null, false);\n }\n }\n }\n return result;\n }\n resolveKeyboardEvent(keyboardEvent) {\n const chord = new KeyCodeChord(keyboardEvent.ctrlKey, keyboardEvent.shiftKey, keyboardEvent.altKey, keyboardEvent.metaKey, keyboardEvent.keyCode);\n return new USLayoutResolvedKeybinding([chord], OS);\n }\n};\nStandaloneKeybindingService = __decorate([\n __param(0, IContextKeyService),\n __param(1, ICommandService),\n __param(2, ITelemetryService),\n __param(3, INotificationService),\n __param(4, ILogService),\n __param(5, ICodeEditorService)\n], StandaloneKeybindingService);\nexport { StandaloneKeybindingService };\nclass DomNodeListeners extends Disposable {\n constructor(domNode, disposables) {\n super();\n this.domNode = domNode;\n this._register(disposables);\n }\n}\nfunction isConfigurationOverrides(thing) {\n return thing\n && typeof thing === 'object'\n && (!thing.overrideIdentifier || typeof thing.overrideIdentifier === 'string')\n && (!thing.resource || thing.resource instanceof URI);\n}\nlet StandaloneConfigurationService = class StandaloneConfigurationService {\n constructor(logService) {\n this.logService = logService;\n this._onDidChangeConfiguration = new Emitter();\n this.onDidChangeConfiguration = this._onDidChangeConfiguration.event;\n const defaultConfiguration = new DefaultConfiguration(logService);\n this._configuration = new Configuration(defaultConfiguration.reload(), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), new ResourceMap(), ConfigurationModel.createEmptyModel(logService), new ResourceMap(), logService);\n defaultConfiguration.dispose();\n }\n getValue(arg1, arg2) {\n const section = typeof arg1 === 'string' ? arg1 : undefined;\n const overrides = isConfigurationOverrides(arg1) ? arg1 : isConfigurationOverrides(arg2) ? arg2 : {};\n return this._configuration.getValue(section, overrides, undefined);\n }\n updateValues(values) {\n const previous = { data: this._configuration.toData() };\n const changedKeys = [];\n for (const entry of values) {\n const [key, value] = entry;\n if (this.getValue(key) === value) {\n continue;\n }\n this._configuration.updateValue(key, value);\n changedKeys.push(key);\n }\n if (changedKeys.length > 0) {\n const configurationChangeEvent = new ConfigurationChangeEvent({ keys: changedKeys, overrides: [] }, previous, this._configuration, undefined, this.logService);\n configurationChangeEvent.source = 8 /* ConfigurationTarget.MEMORY */;\n this._onDidChangeConfiguration.fire(configurationChangeEvent);\n }\n return Promise.resolve();\n }\n updateValue(key, value, arg3, arg4) {\n return this.updateValues([[key, value]]);\n }\n inspect(key, options = {}) {\n return this._configuration.inspect(key, options, undefined);\n }\n};\nStandaloneConfigurationService = __decorate([\n __param(0, ILogService)\n], StandaloneConfigurationService);\nexport { StandaloneConfigurationService };\nlet StandaloneResourceConfigurationService = class StandaloneResourceConfigurationService {\n constructor(configurationService, modelService, languageService) {\n this.configurationService = configurationService;\n this.modelService = modelService;\n this.languageService = languageService;\n this._onDidChangeConfiguration = new Emitter();\n this.configurationService.onDidChangeConfiguration((e) => {\n this._onDidChangeConfiguration.fire({ affectedKeys: e.affectedKeys, affectsConfiguration: (resource, configuration) => e.affectsConfiguration(configuration) });\n });\n }\n getValue(resource, arg2, arg3) {\n const position = Pos.isIPosition(arg2) ? arg2 : null;\n const section = position ? (typeof arg3 === 'string' ? arg3 : undefined) : (typeof arg2 === 'string' ? arg2 : undefined);\n const language = resource ? this.getLanguage(resource, position) : undefined;\n if (typeof section === 'undefined') {\n return this.configurationService.getValue({\n resource,\n overrideIdentifier: language\n });\n }\n return this.configurationService.getValue(section, {\n resource,\n overrideIdentifier: language\n });\n }\n getLanguage(resource, position) {\n const model = this.modelService.getModel(resource);\n if (model) {\n return position ? model.getLanguageIdAtPosition(position.lineNumber, position.column) : model.getLanguageId();\n }\n return this.languageService.guessLanguageIdByFilepathOrFirstLine(resource);\n }\n};\nStandaloneResourceConfigurationService = __decorate([\n __param(0, IConfigurationService),\n __param(1, IModelService),\n __param(2, ILanguageService)\n], StandaloneResourceConfigurationService);\nlet StandaloneResourcePropertiesService = class StandaloneResourcePropertiesService {\n constructor(configurationService) {\n this.configurationService = configurationService;\n }\n getEOL(resource, language) {\n const eol = this.configurationService.getValue('files.eol', { overrideIdentifier: language, resource });\n if (eol && typeof eol === 'string' && eol !== 'auto') {\n return eol;\n }\n return (isLinux || isMacintosh) ? '\\n' : '\\r\\n';\n }\n};\nStandaloneResourcePropertiesService = __decorate([\n __param(0, IConfigurationService)\n], StandaloneResourcePropertiesService);\nclass StandaloneTelemetryService {\n publicLog2() { }\n}\nclass StandaloneWorkspaceContextService {\n constructor() {\n const resource = URI.from({ scheme: StandaloneWorkspaceContextService.SCHEME, authority: 'model', path: '/' });\n this.workspace = { id: STANDALONE_EDITOR_WORKSPACE_ID, folders: [new WorkspaceFolder({ uri: resource, name: '', index: 0 })] };\n }\n getWorkspace() {\n return this.workspace;\n }\n getWorkspaceFolder(resource) {\n return resource && resource.scheme === StandaloneWorkspaceContextService.SCHEME ? this.workspace.folders[0] : null;\n }\n}\nStandaloneWorkspaceContextService.SCHEME = 'inmemory';\nexport function updateConfigurationService(configurationService, source, isDiffEditor) {\n if (!source) {\n return;\n }\n if (!(configurationService instanceof StandaloneConfigurationService)) {\n return;\n }\n const toUpdate = [];\n Object.keys(source).forEach((key) => {\n if (isEditorConfigurationKey(key)) {\n toUpdate.push([`editor.${key}`, source[key]]);\n }\n if (isDiffEditor && isDiffEditorConfigurationKey(key)) {\n toUpdate.push([`diffEditor.${key}`, source[key]]);\n }\n });\n if (toUpdate.length > 0) {\n configurationService.updateValues(toUpdate);\n }\n}\nlet StandaloneBulkEditService = class StandaloneBulkEditService {\n constructor(_modelService) {\n this._modelService = _modelService;\n //\n }\n hasPreviewHandler() {\n return false;\n }\n async apply(editsIn, _options) {\n const edits = Array.isArray(editsIn) ? editsIn : ResourceEdit.convert(editsIn);\n const textEdits = new Map();\n for (const edit of edits) {\n if (!(edit instanceof ResourceTextEdit)) {\n throw new Error('bad edit - only text edits are supported');\n }\n const model = this._modelService.getModel(edit.resource);\n if (!model) {\n throw new Error('bad edit - model not found');\n }\n if (typeof edit.versionId === 'number' && model.getVersionId() !== edit.versionId) {\n throw new Error('bad state - model changed in the meantime');\n }\n let array = textEdits.get(model);\n if (!array) {\n array = [];\n textEdits.set(model, array);\n }\n array.push(EditOperation.replaceMove(Range.lift(edit.textEdit.range), edit.textEdit.text));\n }\n let totalEdits = 0;\n let totalFiles = 0;\n for (const [model, edits] of textEdits) {\n model.pushStackElement();\n model.pushEditOperations([], edits, () => []);\n model.pushStackElement();\n totalFiles += 1;\n totalEdits += edits.length;\n }\n return {\n ariaSummary: strings.format(StandaloneServicesNLS.bulkEditServiceSummary, totalEdits, totalFiles),\n isApplied: totalEdits > 0\n };\n }\n};\nStandaloneBulkEditService = __decorate([\n __param(0, IModelService)\n], StandaloneBulkEditService);\nclass StandaloneUriLabelService {\n getUriLabel(resource, options) {\n if (resource.scheme === 'file') {\n return resource.fsPath;\n }\n return resource.path;\n }\n getUriBasenameLabel(resource) {\n return basename(resource);\n }\n}\nlet StandaloneContextViewService = class StandaloneContextViewService extends ContextViewService {\n constructor(layoutService, _codeEditorService) {\n super(layoutService);\n this._codeEditorService = _codeEditorService;\n }\n showContextView(delegate, container, shadowRoot) {\n if (!container) {\n const codeEditor = this._codeEditorService.getFocusedCodeEditor() || this._codeEditorService.getActiveCodeEditor();\n if (codeEditor) {\n container = codeEditor.getContainerDomNode();\n }\n }\n return super.showContextView(delegate, container, shadowRoot);\n }\n};\nStandaloneContextViewService = __decorate([\n __param(0, ILayoutService),\n __param(1, ICodeEditorService)\n], StandaloneContextViewService);\nclass StandaloneWorkspaceTrustManagementService {\n constructor() {\n this._neverEmitter = new Emitter();\n this.onDidChangeTrust = this._neverEmitter.event;\n }\n isWorkspaceTrusted() {\n return true;\n }\n}\nclass StandaloneLanguageService extends LanguageService {\n constructor() {\n super();\n }\n}\nclass StandaloneLogService extends LogService {\n constructor() {\n super(new ConsoleLogger());\n }\n}\nlet StandaloneContextMenuService = class StandaloneContextMenuService extends ContextMenuService {\n constructor(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService) {\n super(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService);\n this.configure({ blockMouse: false }); // we do not want that in the standalone editor\n }\n};\nStandaloneContextMenuService = __decorate([\n __param(0, ITelemetryService),\n __param(1, INotificationService),\n __param(2, IContextViewService),\n __param(3, IKeybindingService),\n __param(4, IMenuService),\n __param(5, IContextKeyService)\n], StandaloneContextMenuService);\nclass StandaloneAccessbilitySignalService {\n async playSignal(cue, options) {\n }\n}\nregisterSingleton(ILogService, StandaloneLogService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IConfigurationService, StandaloneConfigurationService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITextResourceConfigurationService, StandaloneResourceConfigurationService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITextResourcePropertiesService, StandaloneResourcePropertiesService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IWorkspaceContextService, StandaloneWorkspaceContextService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ILabelService, StandaloneUriLabelService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITelemetryService, StandaloneTelemetryService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IDialogService, StandaloneDialogService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IEnvironmentService, StandaloneEnvironmentService, 0 /* InstantiationType.Eager */);\nregisterSingleton(INotificationService, StandaloneNotificationService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IMarkerService, MarkerService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ILanguageService, StandaloneLanguageService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IStandaloneThemeService, StandaloneThemeService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IModelService, ModelService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IMarkerDecorationsService, MarkerDecorationsService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IContextKeyService, ContextKeyService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IProgressService, StandaloneProgressService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IEditorProgressService, StandaloneEditorProgressService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IStorageService, InMemoryStorageService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IEditorWorkerService, EditorWorkerService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IBulkEditService, StandaloneBulkEditService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IWorkspaceTrustManagementService, StandaloneWorkspaceTrustManagementService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ITextModelService, StandaloneTextModelService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IAccessibilityService, AccessibilityService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IListService, ListService, 0 /* InstantiationType.Eager */);\nregisterSingleton(ICommandService, StandaloneCommandService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IKeybindingService, StandaloneKeybindingService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IQuickInputService, StandaloneQuickInputService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IContextViewService, StandaloneContextViewService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IOpenerService, OpenerService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IClipboardService, BrowserClipboardService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IContextMenuService, StandaloneContextMenuService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IMenuService, MenuService, 0 /* InstantiationType.Eager */);\nregisterSingleton(IAccessibilitySignalService, StandaloneAccessbilitySignalService, 0 /* InstantiationType.Eager */);\n/**\n * We don't want to eagerly instantiate services because embedders get a one time chance\n * to override services when they create the first editor.\n */\nexport var StandaloneServices;\n(function (StandaloneServices) {\n const serviceCollection = new ServiceCollection();\n for (const [id, descriptor] of getSingletonServiceDescriptors()) {\n serviceCollection.set(id, descriptor);\n }\n const instantiationService = new InstantiationService(serviceCollection, true);\n serviceCollection.set(IInstantiationService, instantiationService);\n function get(serviceId) {\n if (!initialized) {\n initialize({});\n }\n const r = serviceCollection.get(serviceId);\n if (!r) {\n throw new Error('Missing service ' + serviceId);\n }\n if (r instanceof SyncDescriptor) {\n return instantiationService.invokeFunction((accessor) => accessor.get(serviceId));\n }\n else {\n return r;\n }\n }\n StandaloneServices.get = get;\n let initialized = false;\n const onDidInitialize = new Emitter();\n function initialize(overrides) {\n if (initialized) {\n return instantiationService;\n }\n initialized = true;\n // Add singletons that were registered after this module loaded\n for (const [id, descriptor] of getSingletonServiceDescriptors()) {\n if (!serviceCollection.get(id)) {\n serviceCollection.set(id, descriptor);\n }\n }\n // Initialize the service collection with the overrides, but only if the\n // service was not instantiated in the meantime.\n for (const serviceId in overrides) {\n if (overrides.hasOwnProperty(serviceId)) {\n const serviceIdentifier = createDecorator(serviceId);\n const r = serviceCollection.get(serviceIdentifier);\n if (r instanceof SyncDescriptor) {\n serviceCollection.set(serviceIdentifier, overrides[serviceId]);\n }\n }\n }\n // Instantiate all editor features\n const editorFeatures = getEditorFeatures();\n for (const feature of editorFeatures) {\n try {\n instantiationService.createInstance(feature);\n }\n catch (err) {\n onUnexpectedError(err);\n }\n }\n onDidInitialize.fire();\n return instantiationService;\n }\n StandaloneServices.initialize = initialize;\n /**\n * Executes callback once services are initialized.\n */\n function withServices(callback) {\n if (initialized) {\n return callback();\n }\n const disposable = new DisposableStore();\n const listener = disposable.add(onDidInitialize.event(() => {\n listener.dispose();\n disposable.add(callback());\n }));\n return disposable;\n }\n StandaloneServices.withServices = withServices;\n})(StandaloneServices || (StandaloneServices = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { editorActiveIndentGuide1, editorIndentGuide1 } from '../../common/core/editorColorRegistry.js';\nimport { editorBackground, editorForeground, editorInactiveSelection, editorSelectionHighlight } from '../../../platform/theme/common/colorRegistry.js';\n/* -------------------------------- Begin vs theme -------------------------------- */\nexport const vs = {\n base: 'vs',\n inherit: false,\n rules: [\n { token: '', foreground: '000000', background: 'fffffe' },\n { token: 'invalid', foreground: 'cd3131' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '001188' },\n { token: 'variable.predefined', foreground: '4864AA' },\n { token: 'constant', foreground: 'dd0000' },\n { token: 'comment', foreground: '008000' },\n { token: 'number', foreground: '098658' },\n { token: 'number.hex', foreground: '3030c0' },\n { token: 'regexp', foreground: '800000' },\n { token: 'annotation', foreground: '808080' },\n { token: 'type', foreground: '008080' },\n { token: 'delimiter', foreground: '000000' },\n { token: 'delimiter.html', foreground: '383838' },\n { token: 'delimiter.xml', foreground: '0000FF' },\n { token: 'tag', foreground: '800000' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: '800000' },\n { token: 'metatag', foreground: 'e00000' },\n { token: 'metatag.content.html', foreground: 'FF0000' },\n { token: 'metatag.html', foreground: '808080' },\n { token: 'metatag.xml', foreground: '808080' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '863B00' },\n { token: 'string.key.json', foreground: 'A31515' },\n { token: 'string.value.json', foreground: '0451A5' },\n { token: 'attribute.name', foreground: 'FF0000' },\n { token: 'attribute.value', foreground: '0451A5' },\n { token: 'attribute.value.number', foreground: '098658' },\n { token: 'attribute.value.unit', foreground: '098658' },\n { token: 'attribute.value.html', foreground: '0000FF' },\n { token: 'attribute.value.xml', foreground: '0000FF' },\n { token: 'string', foreground: 'A31515' },\n { token: 'string.html', foreground: '0000FF' },\n { token: 'string.sql', foreground: 'FF0000' },\n { token: 'string.yaml', foreground: '0451A5' },\n { token: 'keyword', foreground: '0000FF' },\n { token: 'keyword.json', foreground: '0451A5' },\n { token: 'keyword.flow', foreground: 'AF00DB' },\n { token: 'keyword.flow.scss', foreground: '0000FF' },\n { token: 'operator.scss', foreground: '666666' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '666666' },\n { token: 'predefined.sql', foreground: 'C700C7' },\n ],\n colors: {\n [editorBackground]: '#FFFFFE',\n [editorForeground]: '#000000',\n [editorInactiveSelection]: '#E5EBF1',\n [editorIndentGuide1]: '#D3D3D3',\n [editorActiveIndentGuide1]: '#939393',\n [editorSelectionHighlight]: '#ADD6FF4D'\n }\n};\n/* -------------------------------- End vs theme -------------------------------- */\n/* -------------------------------- Begin vs-dark theme -------------------------------- */\nexport const vs_dark = {\n base: 'vs-dark',\n inherit: false,\n rules: [\n { token: '', foreground: 'D4D4D4', background: '1E1E1E' },\n { token: 'invalid', foreground: 'f44747' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '74B0DF' },\n { token: 'variable.predefined', foreground: '4864AA' },\n { token: 'variable.parameter', foreground: '9CDCFE' },\n { token: 'constant', foreground: '569CD6' },\n { token: 'comment', foreground: '608B4E' },\n { token: 'number', foreground: 'B5CEA8' },\n { token: 'number.hex', foreground: '5BB498' },\n { token: 'regexp', foreground: 'B46695' },\n { token: 'annotation', foreground: 'cc6666' },\n { token: 'type', foreground: '3DC9B0' },\n { token: 'delimiter', foreground: 'DCDCDC' },\n { token: 'delimiter.html', foreground: '808080' },\n { token: 'delimiter.xml', foreground: '808080' },\n { token: 'tag', foreground: '569CD6' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: 'A79873' },\n { token: 'meta.tag', foreground: 'CE9178' },\n { token: 'metatag', foreground: 'DD6A6F' },\n { token: 'metatag.content.html', foreground: '9CDCFE' },\n { token: 'metatag.html', foreground: '569CD6' },\n { token: 'metatag.xml', foreground: '569CD6' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '9CDCFE' },\n { token: 'string.key.json', foreground: '9CDCFE' },\n { token: 'string.value.json', foreground: 'CE9178' },\n { token: 'attribute.name', foreground: '9CDCFE' },\n { token: 'attribute.value', foreground: 'CE9178' },\n { token: 'attribute.value.number.css', foreground: 'B5CEA8' },\n { token: 'attribute.value.unit.css', foreground: 'B5CEA8' },\n { token: 'attribute.value.hex.css', foreground: 'D4D4D4' },\n { token: 'string', foreground: 'CE9178' },\n { token: 'string.sql', foreground: 'FF0000' },\n { token: 'keyword', foreground: '569CD6' },\n { token: 'keyword.flow', foreground: 'C586C0' },\n { token: 'keyword.json', foreground: 'CE9178' },\n { token: 'keyword.flow.scss', foreground: '569CD6' },\n { token: 'operator.scss', foreground: '909090' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '909090' },\n { token: 'predefined.sql', foreground: 'FF00FF' },\n ],\n colors: {\n [editorBackground]: '#1E1E1E',\n [editorForeground]: '#D4D4D4',\n [editorInactiveSelection]: '#3A3D41',\n [editorIndentGuide1]: '#404040',\n [editorActiveIndentGuide1]: '#707070',\n [editorSelectionHighlight]: '#ADD6FF26'\n }\n};\n/* -------------------------------- End vs-dark theme -------------------------------- */\n/* -------------------------------- Begin hc-black theme -------------------------------- */\nexport const hc_black = {\n base: 'hc-black',\n inherit: false,\n rules: [\n { token: '', foreground: 'FFFFFF', background: '000000' },\n { token: 'invalid', foreground: 'f44747' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '1AEBFF' },\n { token: 'variable.parameter', foreground: '9CDCFE' },\n { token: 'constant', foreground: '569CD6' },\n { token: 'comment', foreground: '608B4E' },\n { token: 'number', foreground: 'FFFFFF' },\n { token: 'regexp', foreground: 'C0C0C0' },\n { token: 'annotation', foreground: '569CD6' },\n { token: 'type', foreground: '3DC9B0' },\n { token: 'delimiter', foreground: 'FFFF00' },\n { token: 'delimiter.html', foreground: 'FFFF00' },\n { token: 'tag', foreground: '569CD6' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta', foreground: 'D4D4D4' },\n { token: 'meta.tag', foreground: 'CE9178' },\n { token: 'metatag', foreground: '569CD6' },\n { token: 'metatag.content.html', foreground: '1AEBFF' },\n { token: 'metatag.html', foreground: '569CD6' },\n { token: 'metatag.xml', foreground: '569CD6' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '9CDCFE' },\n { token: 'string.key', foreground: '9CDCFE' },\n { token: 'string.value', foreground: 'CE9178' },\n { token: 'attribute.name', foreground: '569CD6' },\n { token: 'attribute.value', foreground: '3FF23F' },\n { token: 'string', foreground: 'CE9178' },\n { token: 'string.sql', foreground: 'FF0000' },\n { token: 'keyword', foreground: '569CD6' },\n { token: 'keyword.flow', foreground: 'C586C0' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '909090' },\n { token: 'predefined.sql', foreground: 'FF00FF' },\n ],\n colors: {\n [editorBackground]: '#000000',\n [editorForeground]: '#FFFFFF',\n [editorIndentGuide1]: '#FFFFFF',\n [editorActiveIndentGuide1]: '#FFFFFF',\n }\n};\n/* -------------------------------- End hc-black theme -------------------------------- */\n/* -------------------------------- Begin hc-light theme -------------------------------- */\nexport const hc_light = {\n base: 'hc-light',\n inherit: false,\n rules: [\n { token: '', foreground: '292929', background: 'FFFFFF' },\n { token: 'invalid', foreground: 'B5200D' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '264F70' },\n { token: 'variable.predefined', foreground: '4864AA' },\n { token: 'constant', foreground: 'dd0000' },\n { token: 'comment', foreground: '008000' },\n { token: 'number', foreground: '098658' },\n { token: 'number.hex', foreground: '3030c0' },\n { token: 'regexp', foreground: '800000' },\n { token: 'annotation', foreground: '808080' },\n { token: 'type', foreground: '008080' },\n { token: 'delimiter', foreground: '000000' },\n { token: 'delimiter.html', foreground: '383838' },\n { token: 'tag', foreground: '800000' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: '800000' },\n { token: 'metatag', foreground: 'e00000' },\n { token: 'metatag.content.html', foreground: 'B5200D' },\n { token: 'metatag.html', foreground: '808080' },\n { token: 'metatag.xml', foreground: '808080' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '863B00' },\n { token: 'string.key.json', foreground: 'A31515' },\n { token: 'string.value.json', foreground: '0451A5' },\n { token: 'attribute.name', foreground: '264F78' },\n { token: 'attribute.value', foreground: '0451A5' },\n { token: 'string', foreground: 'A31515' },\n { token: 'string.sql', foreground: 'B5200D' },\n { token: 'keyword', foreground: '0000FF' },\n { token: 'keyword.flow', foreground: 'AF00DB' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '666666' },\n { token: 'predefined.sql', foreground: 'C700C7' },\n ],\n colors: {\n [editorBackground]: '#FFFFFF',\n [editorForeground]: '#292929',\n [editorIndentGuide1]: '#292929',\n [editorActiveIndentGuide1]: '#292929',\n }\n};\n/* -------------------------------- End hc-light theme -------------------------------- */\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { addMatchMediaChangeListener } from '../../../base/browser/browser.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { TokenMetadata } from '../../common/encodedTokenAttributes.js';\nimport { TokenTheme, generateTokensCSSForColorMap } from '../../common/languages/supports/tokenization.js';\nimport { hc_black, hc_light, vs, vs_dark } from '../common/themes.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { asCssVariableName, Extensions } from '../../../platform/theme/common/colorRegistry.js';\nimport { Extensions as ThemingExtensions } from '../../../platform/theme/common/themeService.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { ColorScheme, isDark, isHighContrast } from '../../../platform/theme/common/theme.js';\nimport { getIconsStyleSheet, UnthemedProductIconTheme } from '../../../platform/theme/browser/iconsStyleSheet.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nexport const VS_LIGHT_THEME_NAME = 'vs';\nexport const VS_DARK_THEME_NAME = 'vs-dark';\nexport const HC_BLACK_THEME_NAME = 'hc-black';\nexport const HC_LIGHT_THEME_NAME = 'hc-light';\nconst colorRegistry = Registry.as(Extensions.ColorContribution);\nconst themingRegistry = Registry.as(ThemingExtensions.ThemingContribution);\nclass StandaloneTheme {\n constructor(name, standaloneThemeData) {\n this.semanticHighlighting = false;\n this.themeData = standaloneThemeData;\n const base = standaloneThemeData.base;\n if (name.length > 0) {\n if (isBuiltinTheme(name)) {\n this.id = name;\n }\n else {\n this.id = base + ' ' + name;\n }\n this.themeName = name;\n }\n else {\n this.id = base;\n this.themeName = base;\n }\n this.colors = null;\n this.defaultColors = Object.create(null);\n this._tokenTheme = null;\n }\n get base() {\n return this.themeData.base;\n }\n notifyBaseUpdated() {\n if (this.themeData.inherit) {\n this.colors = null;\n this._tokenTheme = null;\n }\n }\n getColors() {\n if (!this.colors) {\n const colors = new Map();\n for (const id in this.themeData.colors) {\n colors.set(id, Color.fromHex(this.themeData.colors[id]));\n }\n if (this.themeData.inherit) {\n const baseData = getBuiltinRules(this.themeData.base);\n for (const id in baseData.colors) {\n if (!colors.has(id)) {\n colors.set(id, Color.fromHex(baseData.colors[id]));\n }\n }\n }\n this.colors = colors;\n }\n return this.colors;\n }\n getColor(colorId, useDefault) {\n const color = this.getColors().get(colorId);\n if (color) {\n return color;\n }\n if (useDefault !== false) {\n return this.getDefault(colorId);\n }\n return undefined;\n }\n getDefault(colorId) {\n let color = this.defaultColors[colorId];\n if (color) {\n return color;\n }\n color = colorRegistry.resolveDefaultColor(colorId, this);\n this.defaultColors[colorId] = color;\n return color;\n }\n defines(colorId) {\n return this.getColors().has(colorId);\n }\n get type() {\n switch (this.base) {\n case VS_LIGHT_THEME_NAME: return ColorScheme.LIGHT;\n case HC_BLACK_THEME_NAME: return ColorScheme.HIGH_CONTRAST_DARK;\n case HC_LIGHT_THEME_NAME: return ColorScheme.HIGH_CONTRAST_LIGHT;\n default: return ColorScheme.DARK;\n }\n }\n get tokenTheme() {\n if (!this._tokenTheme) {\n let rules = [];\n let encodedTokensColors = [];\n if (this.themeData.inherit) {\n const baseData = getBuiltinRules(this.themeData.base);\n rules = baseData.rules;\n if (baseData.encodedTokensColors) {\n encodedTokensColors = baseData.encodedTokensColors;\n }\n }\n // Pick up default colors from `editor.foreground` and `editor.background` if available\n const editorForeground = this.themeData.colors['editor.foreground'];\n const editorBackground = this.themeData.colors['editor.background'];\n if (editorForeground || editorBackground) {\n const rule = { token: '' };\n if (editorForeground) {\n rule.foreground = editorForeground;\n }\n if (editorBackground) {\n rule.background = editorBackground;\n }\n rules.push(rule);\n }\n rules = rules.concat(this.themeData.rules);\n if (this.themeData.encodedTokensColors) {\n encodedTokensColors = this.themeData.encodedTokensColors;\n }\n this._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n }\n return this._tokenTheme;\n }\n getTokenStyleMetadata(type, modifiers, modelLanguage) {\n // use theme rules match\n const style = this.tokenTheme._match([type].concat(modifiers).join('.'));\n const metadata = style.metadata;\n const foreground = TokenMetadata.getForeground(metadata);\n const fontStyle = TokenMetadata.getFontStyle(metadata);\n return {\n foreground: foreground,\n italic: Boolean(fontStyle & 1 /* FontStyle.Italic */),\n bold: Boolean(fontStyle & 2 /* FontStyle.Bold */),\n underline: Boolean(fontStyle & 4 /* FontStyle.Underline */),\n strikethrough: Boolean(fontStyle & 8 /* FontStyle.Strikethrough */)\n };\n }\n}\nfunction isBuiltinTheme(themeName) {\n return (themeName === VS_LIGHT_THEME_NAME\n || themeName === VS_DARK_THEME_NAME\n || themeName === HC_BLACK_THEME_NAME\n || themeName === HC_LIGHT_THEME_NAME);\n}\nfunction getBuiltinRules(builtinTheme) {\n switch (builtinTheme) {\n case VS_LIGHT_THEME_NAME:\n return vs;\n case VS_DARK_THEME_NAME:\n return vs_dark;\n case HC_BLACK_THEME_NAME:\n return hc_black;\n case HC_LIGHT_THEME_NAME:\n return hc_light;\n }\n}\nfunction newBuiltInTheme(builtinTheme) {\n const themeData = getBuiltinRules(builtinTheme);\n return new StandaloneTheme(builtinTheme, themeData);\n}\nexport class StandaloneThemeService extends Disposable {\n constructor() {\n super();\n this._onColorThemeChange = this._register(new Emitter());\n this.onDidColorThemeChange = this._onColorThemeChange.event;\n this._onProductIconThemeChange = this._register(new Emitter());\n this.onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n this._environment = Object.create(null);\n this._builtInProductIconTheme = new UnthemedProductIconTheme();\n this._autoDetectHighContrast = true;\n this._knownThemes = new Map();\n this._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n this._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n this._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n this._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n const iconsStyleSheet = this._register(getIconsStyleSheet(this));\n this._codiconCSS = iconsStyleSheet.getCSS();\n this._themeCSS = '';\n this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n this._globalStyleElement = null;\n this._styleElements = [];\n this._colorMapOverride = null;\n this.setTheme(VS_LIGHT_THEME_NAME);\n this._onOSSchemeChanged();\n this._register(iconsStyleSheet.onDidChange(() => {\n this._codiconCSS = iconsStyleSheet.getCSS();\n this._updateCSS();\n }));\n addMatchMediaChangeListener(mainWindow, '(forced-colors: active)', () => {\n this._onOSSchemeChanged();\n });\n }\n registerEditorContainer(domNode) {\n if (dom.isInShadowDOM(domNode)) {\n return this._registerShadowDomContainer(domNode);\n }\n return this._registerRegularEditorContainer();\n }\n _registerRegularEditorContainer() {\n if (!this._globalStyleElement) {\n this._globalStyleElement = dom.createStyleSheet(undefined, style => {\n style.className = 'monaco-colors';\n style.textContent = this._allCSS;\n });\n this._styleElements.push(this._globalStyleElement);\n }\n return Disposable.None;\n }\n _registerShadowDomContainer(domNode) {\n const styleElement = dom.createStyleSheet(domNode, style => {\n style.className = 'monaco-colors';\n style.textContent = this._allCSS;\n });\n this._styleElements.push(styleElement);\n return {\n dispose: () => {\n for (let i = 0; i < this._styleElements.length; i++) {\n if (this._styleElements[i] === styleElement) {\n this._styleElements.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n defineTheme(themeName, themeData) {\n if (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n throw new Error('Illegal theme name!');\n }\n if (!isBuiltinTheme(themeData.base) && !isBuiltinTheme(themeName)) {\n throw new Error('Illegal theme base!');\n }\n // set or replace theme\n this._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n if (isBuiltinTheme(themeName)) {\n this._knownThemes.forEach(theme => {\n if (theme.base === themeName) {\n theme.notifyBaseUpdated();\n }\n });\n }\n if (this._theme.themeName === themeName) {\n this.setTheme(themeName); // refresh theme\n }\n }\n getColorTheme() {\n return this._theme;\n }\n setColorMapOverride(colorMapOverride) {\n this._colorMapOverride = colorMapOverride;\n this._updateThemeOrColorMap();\n }\n setTheme(themeName) {\n let theme;\n if (this._knownThemes.has(themeName)) {\n theme = this._knownThemes.get(themeName);\n }\n else {\n theme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n }\n this._updateActualTheme(theme);\n }\n _updateActualTheme(desiredTheme) {\n if (!desiredTheme || this._theme === desiredTheme) {\n // Nothing to do\n return;\n }\n this._theme = desiredTheme;\n this._updateThemeOrColorMap();\n }\n _onOSSchemeChanged() {\n if (this._autoDetectHighContrast) {\n const wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n if (wantsHighContrast !== isHighContrast(this._theme.type)) {\n // switch to high contrast or non-high contrast but stick to dark or light\n let newThemeName;\n if (isDark(this._theme.type)) {\n newThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n }\n else {\n newThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n }\n this._updateActualTheme(this._knownThemes.get(newThemeName));\n }\n }\n }\n setAutoDetectHighContrast(autoDetectHighContrast) {\n this._autoDetectHighContrast = autoDetectHighContrast;\n this._onOSSchemeChanged();\n }\n _updateThemeOrColorMap() {\n const cssRules = [];\n const hasRule = {};\n const ruleCollector = {\n addRule: (rule) => {\n if (!hasRule[rule]) {\n cssRules.push(rule);\n hasRule[rule] = true;\n }\n }\n };\n themingRegistry.getThemingParticipants().forEach(p => p(this._theme, ruleCollector, this._environment));\n const colorVariables = [];\n for (const item of colorRegistry.getColors()) {\n const color = this._theme.getColor(item.id, true);\n if (color) {\n colorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n }\n }\n ruleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join('\\n')} }`);\n const colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n ruleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n this._themeCSS = cssRules.join('\\n');\n this._updateCSS();\n TokenizationRegistry.setColorMap(colorMap);\n this._onColorThemeChange.fire(this._theme);\n }\n _updateCSS() {\n this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n this._styleElements.forEach(styleElement => styleElement.textContent = this._allCSS);\n }\n getFileIconTheme() {\n return {\n hasFileIcons: false,\n hasFolderIcons: false,\n hidesExplorerArrows: false\n };\n }\n getProductIconTheme() {\n return this._builtInProductIconTheme;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { ToggleHighContrastNLS } from '../../../common/standaloneStrings.js';\nimport { isDark, isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { HC_BLACK_THEME_NAME, HC_LIGHT_THEME_NAME, VS_DARK_THEME_NAME, VS_LIGHT_THEME_NAME } from '../standaloneThemeService.js';\nclass ToggleHighContrast extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.toggleHighContrast',\n label: ToggleHighContrastNLS.toggleHighContrast,\n alias: 'Toggle High Contrast Theme',\n precondition: undefined\n });\n this._originalThemeName = null;\n }\n run(accessor, editor) {\n const standaloneThemeService = accessor.get(IStandaloneThemeService);\n const currentTheme = standaloneThemeService.getColorTheme();\n if (isHighContrast(currentTheme.type)) {\n // We must toggle back to the integrator's theme\n standaloneThemeService.setTheme(this._originalThemeName || (isDark(currentTheme.type) ? VS_DARK_THEME_NAME : VS_LIGHT_THEME_NAME));\n this._originalThemeName = null;\n }\n else {\n standaloneThemeService.setTheme(isDark(currentTheme.type) ? HC_BLACK_THEME_NAME : HC_LIGHT_THEME_NAME);\n this._originalThemeName = currentTheme.themeName;\n }\n }\n}\nregisterEditorAction(ToggleHighContrast);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function isFuzzyActionArr(what) {\n return (Array.isArray(what));\n}\nexport function isFuzzyAction(what) {\n return !isFuzzyActionArr(what);\n}\nexport function isString(what) {\n return (typeof what === 'string');\n}\nexport function isIAction(what) {\n return !isString(what);\n}\n// Small helper functions\n/**\n * Is a string null, undefined, or empty?\n */\nexport function empty(s) {\n return (s ? false : true);\n}\n/**\n * Puts a string to lower case if 'ignoreCase' is set.\n */\nexport function fixCase(lexer, str) {\n return (lexer.ignoreCase && str ? str.toLowerCase() : str);\n}\n/**\n * Ensures there are no bad characters in a CSS token class.\n */\nexport function sanitize(s) {\n return s.replace(/[&<>'\"_]/g, '-'); // used on all output token CSS classes\n}\n// Logging\n/**\n * Logs a message.\n */\nexport function log(lexer, msg) {\n console.log(`${lexer.languageId}: ${msg}`);\n}\n// Throwing errors\nexport function createError(lexer, msg) {\n return new Error(`${lexer.languageId}: ${msg}`);\n}\n// Helper functions for rule finding and substitution\n/**\n * substituteMatches is used on lexer strings and can substitutes predefined patterns:\n * \t\t$$ => $\n * \t\t$# => id\n * \t\t$n => matched entry n\n * \t\t@attr => contents of lexer[attr]\n *\n * See documentation for more info\n */\nexport function substituteMatches(lexer, str, id, matches, state) {\n const re = /\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g;\n let stateMatches = null;\n return str.replace(re, function (full, sub, dollar, hash, n, s, attr, ofs, total) {\n if (!empty(dollar)) {\n return '$'; // $$\n }\n if (!empty(hash)) {\n return fixCase(lexer, id); // default $#\n }\n if (!empty(n) && n < matches.length) {\n return fixCase(lexer, matches[n]); // $n\n }\n if (!empty(attr) && lexer && typeof (lexer[attr]) === 'string') {\n return lexer[attr]; //@attribute\n }\n if (stateMatches === null) { // split state on demand\n stateMatches = state.split('.');\n stateMatches.unshift(state);\n }\n if (!empty(s) && s < stateMatches.length) {\n return fixCase(lexer, stateMatches[s]); //$Sn\n }\n return '';\n });\n}\n/**\n * substituteMatchesRe is used on lexer regex rules and can substitutes predefined patterns:\n * \t\t$Sn => n'th part of state\n *\n */\nexport function substituteMatchesRe(lexer, str, state) {\n const re = /\\$[sS](\\d\\d?)/g;\n let stateMatches = null;\n return str.replace(re, function (full, s) {\n if (stateMatches === null) { // split state on demand\n stateMatches = state.split('.');\n stateMatches.unshift(state);\n }\n if (!empty(s) && s < stateMatches.length) {\n return fixCase(lexer, stateMatches[s]); //$Sn\n }\n return '';\n });\n}\n/**\n * Find the tokenizer rules for a specific state (i.e. next action)\n */\nexport function findRules(lexer, inState) {\n let state = inState;\n while (state && state.length > 0) {\n const rules = lexer.tokenizer[state];\n if (rules) {\n return rules;\n }\n const idx = state.lastIndexOf('.');\n if (idx < 0) {\n state = null; // no further parent\n }\n else {\n state = state.substr(0, idx);\n }\n }\n return null;\n}\n/**\n * Is a certain state defined? In contrast to 'findRules' this works on a ILexerMin.\n * This is used during compilation where we may know the defined states\n * but not yet whether the corresponding rules are correct.\n */\nexport function stateExists(lexer, inState) {\n let state = inState;\n while (state && state.length > 0) {\n const exist = lexer.stateNames[state];\n if (exist) {\n return true;\n }\n const idx = state.lastIndexOf('.');\n if (idx < 0) {\n state = null; // no further parent\n }\n else {\n state = state.substr(0, idx);\n }\n }\n return false;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MonarchTokenizer_1;\n/**\n * Create a syntax highighter with a fully declarative JSON style lexer description\n * using regular expressions.\n */\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as languages from '../../../common/languages.js';\nimport { NullState, nullTokenizeEncoded, nullTokenize } from '../../../common/languages/nullTokenize.js';\nimport * as monarchCommon from './monarchCommon.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nconst CACHE_STACK_DEPTH = 5;\n/**\n * Reuse the same stack elements up to a certain depth.\n */\nclass MonarchStackElementFactory {\n static create(parent, state) {\n return this._INSTANCE.create(parent, state);\n }\n constructor(maxCacheDepth) {\n this._maxCacheDepth = maxCacheDepth;\n this._entries = Object.create(null);\n }\n create(parent, state) {\n if (parent !== null && parent.depth >= this._maxCacheDepth) {\n // no caching above a certain depth\n return new MonarchStackElement(parent, state);\n }\n let stackElementId = MonarchStackElement.getStackElementId(parent);\n if (stackElementId.length > 0) {\n stackElementId += '|';\n }\n stackElementId += state;\n let result = this._entries[stackElementId];\n if (result) {\n return result;\n }\n result = new MonarchStackElement(parent, state);\n this._entries[stackElementId] = result;\n return result;\n }\n}\nMonarchStackElementFactory._INSTANCE = new MonarchStackElementFactory(CACHE_STACK_DEPTH);\nclass MonarchStackElement {\n constructor(parent, state) {\n this.parent = parent;\n this.state = state;\n this.depth = (this.parent ? this.parent.depth : 0) + 1;\n }\n static getStackElementId(element) {\n let result = '';\n while (element !== null) {\n if (result.length > 0) {\n result += '|';\n }\n result += element.state;\n element = element.parent;\n }\n return result;\n }\n static _equals(a, b) {\n while (a !== null && b !== null) {\n if (a === b) {\n return true;\n }\n if (a.state !== b.state) {\n return false;\n }\n a = a.parent;\n b = b.parent;\n }\n if (a === null && b === null) {\n return true;\n }\n return false;\n }\n equals(other) {\n return MonarchStackElement._equals(this, other);\n }\n push(state) {\n return MonarchStackElementFactory.create(this, state);\n }\n pop() {\n return this.parent;\n }\n popall() {\n let result = this;\n while (result.parent) {\n result = result.parent;\n }\n return result;\n }\n switchTo(state) {\n return MonarchStackElementFactory.create(this.parent, state);\n }\n}\nclass EmbeddedLanguageData {\n constructor(languageId, state) {\n this.languageId = languageId;\n this.state = state;\n }\n equals(other) {\n return (this.languageId === other.languageId\n && this.state.equals(other.state));\n }\n clone() {\n const stateClone = this.state.clone();\n // save an object\n if (stateClone === this.state) {\n return this;\n }\n return new EmbeddedLanguageData(this.languageId, this.state);\n }\n}\n/**\n * Reuse the same line states up to a certain depth.\n */\nclass MonarchLineStateFactory {\n static create(stack, embeddedLanguageData) {\n return this._INSTANCE.create(stack, embeddedLanguageData);\n }\n constructor(maxCacheDepth) {\n this._maxCacheDepth = maxCacheDepth;\n this._entries = Object.create(null);\n }\n create(stack, embeddedLanguageData) {\n if (embeddedLanguageData !== null) {\n // no caching when embedding\n return new MonarchLineState(stack, embeddedLanguageData);\n }\n if (stack !== null && stack.depth >= this._maxCacheDepth) {\n // no caching above a certain depth\n return new MonarchLineState(stack, embeddedLanguageData);\n }\n const stackElementId = MonarchStackElement.getStackElementId(stack);\n let result = this._entries[stackElementId];\n if (result) {\n return result;\n }\n result = new MonarchLineState(stack, null);\n this._entries[stackElementId] = result;\n return result;\n }\n}\nMonarchLineStateFactory._INSTANCE = new MonarchLineStateFactory(CACHE_STACK_DEPTH);\nclass MonarchLineState {\n constructor(stack, embeddedLanguageData) {\n this.stack = stack;\n this.embeddedLanguageData = embeddedLanguageData;\n }\n clone() {\n const embeddedlanguageDataClone = this.embeddedLanguageData ? this.embeddedLanguageData.clone() : null;\n // save an object\n if (embeddedlanguageDataClone === this.embeddedLanguageData) {\n return this;\n }\n return MonarchLineStateFactory.create(this.stack, this.embeddedLanguageData);\n }\n equals(other) {\n if (!(other instanceof MonarchLineState)) {\n return false;\n }\n if (!this.stack.equals(other.stack)) {\n return false;\n }\n if (this.embeddedLanguageData === null && other.embeddedLanguageData === null) {\n return true;\n }\n if (this.embeddedLanguageData === null || other.embeddedLanguageData === null) {\n return false;\n }\n return this.embeddedLanguageData.equals(other.embeddedLanguageData);\n }\n}\nclass MonarchClassicTokensCollector {\n constructor() {\n this._tokens = [];\n this._languageId = null;\n this._lastTokenType = null;\n this._lastTokenLanguage = null;\n }\n enterLanguage(languageId) {\n this._languageId = languageId;\n }\n emit(startOffset, type) {\n if (this._lastTokenType === type && this._lastTokenLanguage === this._languageId) {\n return;\n }\n this._lastTokenType = type;\n this._lastTokenLanguage = this._languageId;\n this._tokens.push(new languages.Token(startOffset, type, this._languageId));\n }\n nestedLanguageTokenize(embeddedLanguageLine, hasEOL, embeddedLanguageData, offsetDelta) {\n const nestedLanguageId = embeddedLanguageData.languageId;\n const embeddedModeState = embeddedLanguageData.state;\n const nestedLanguageTokenizationSupport = languages.TokenizationRegistry.get(nestedLanguageId);\n if (!nestedLanguageTokenizationSupport) {\n this.enterLanguage(nestedLanguageId);\n this.emit(offsetDelta, '');\n return embeddedModeState;\n }\n const nestedResult = nestedLanguageTokenizationSupport.tokenize(embeddedLanguageLine, hasEOL, embeddedModeState);\n if (offsetDelta !== 0) {\n for (const token of nestedResult.tokens) {\n this._tokens.push(new languages.Token(token.offset + offsetDelta, token.type, token.language));\n }\n }\n else {\n this._tokens = this._tokens.concat(nestedResult.tokens);\n }\n this._lastTokenType = null;\n this._lastTokenLanguage = null;\n this._languageId = null;\n return nestedResult.endState;\n }\n finalize(endState) {\n return new languages.TokenizationResult(this._tokens, endState);\n }\n}\nclass MonarchModernTokensCollector {\n constructor(languageService, theme) {\n this._languageService = languageService;\n this._theme = theme;\n this._prependTokens = null;\n this._tokens = [];\n this._currentLanguageId = 0 /* LanguageId.Null */;\n this._lastTokenMetadata = 0;\n }\n enterLanguage(languageId) {\n this._currentLanguageId = this._languageService.languageIdCodec.encodeLanguageId(languageId);\n }\n emit(startOffset, type) {\n const metadata = this._theme.match(this._currentLanguageId, type) | 1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */;\n if (this._lastTokenMetadata === metadata) {\n return;\n }\n this._lastTokenMetadata = metadata;\n this._tokens.push(startOffset);\n this._tokens.push(metadata);\n }\n static _merge(a, b, c) {\n const aLen = (a !== null ? a.length : 0);\n const bLen = b.length;\n const cLen = (c !== null ? c.length : 0);\n if (aLen === 0 && bLen === 0 && cLen === 0) {\n return new Uint32Array(0);\n }\n if (aLen === 0 && bLen === 0) {\n return c;\n }\n if (bLen === 0 && cLen === 0) {\n return a;\n }\n const result = new Uint32Array(aLen + bLen + cLen);\n if (a !== null) {\n result.set(a);\n }\n for (let i = 0; i < bLen; i++) {\n result[aLen + i] = b[i];\n }\n if (c !== null) {\n result.set(c, aLen + bLen);\n }\n return result;\n }\n nestedLanguageTokenize(embeddedLanguageLine, hasEOL, embeddedLanguageData, offsetDelta) {\n const nestedLanguageId = embeddedLanguageData.languageId;\n const embeddedModeState = embeddedLanguageData.state;\n const nestedLanguageTokenizationSupport = languages.TokenizationRegistry.get(nestedLanguageId);\n if (!nestedLanguageTokenizationSupport) {\n this.enterLanguage(nestedLanguageId);\n this.emit(offsetDelta, '');\n return embeddedModeState;\n }\n const nestedResult = nestedLanguageTokenizationSupport.tokenizeEncoded(embeddedLanguageLine, hasEOL, embeddedModeState);\n if (offsetDelta !== 0) {\n for (let i = 0, len = nestedResult.tokens.length; i < len; i += 2) {\n nestedResult.tokens[i] += offsetDelta;\n }\n }\n this._prependTokens = MonarchModernTokensCollector._merge(this._prependTokens, this._tokens, nestedResult.tokens);\n this._tokens = [];\n this._currentLanguageId = 0;\n this._lastTokenMetadata = 0;\n return nestedResult.endState;\n }\n finalize(endState) {\n return new languages.EncodedTokenizationResult(MonarchModernTokensCollector._merge(this._prependTokens, this._tokens, null), endState);\n }\n}\nlet MonarchTokenizer = MonarchTokenizer_1 = class MonarchTokenizer extends Disposable {\n constructor(languageService, standaloneThemeService, languageId, lexer, _configurationService) {\n super();\n this._configurationService = _configurationService;\n this._languageService = languageService;\n this._standaloneThemeService = standaloneThemeService;\n this._languageId = languageId;\n this._lexer = lexer;\n this._embeddedLanguages = Object.create(null);\n this.embeddedLoaded = Promise.resolve(undefined);\n // Set up listening for embedded modes\n let emitting = false;\n this._register(languages.TokenizationRegistry.onDidChange((e) => {\n if (emitting) {\n return;\n }\n let isOneOfMyEmbeddedModes = false;\n for (let i = 0, len = e.changedLanguages.length; i < len; i++) {\n const language = e.changedLanguages[i];\n if (this._embeddedLanguages[language]) {\n isOneOfMyEmbeddedModes = true;\n break;\n }\n }\n if (isOneOfMyEmbeddedModes) {\n emitting = true;\n languages.TokenizationRegistry.handleChange([this._languageId]);\n emitting = false;\n }\n }));\n this._maxTokenizationLineLength = this._configurationService.getValue('editor.maxTokenizationLineLength', {\n overrideIdentifier: this._languageId\n });\n this._register(this._configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration('editor.maxTokenizationLineLength')) {\n this._maxTokenizationLineLength = this._configurationService.getValue('editor.maxTokenizationLineLength', {\n overrideIdentifier: this._languageId\n });\n }\n }));\n }\n getLoadStatus() {\n const promises = [];\n for (const nestedLanguageId in this._embeddedLanguages) {\n const tokenizationSupport = languages.TokenizationRegistry.get(nestedLanguageId);\n if (tokenizationSupport) {\n // The nested language is already loaded\n if (tokenizationSupport instanceof MonarchTokenizer_1) {\n const nestedModeStatus = tokenizationSupport.getLoadStatus();\n if (nestedModeStatus.loaded === false) {\n promises.push(nestedModeStatus.promise);\n }\n }\n continue;\n }\n if (!languages.TokenizationRegistry.isResolved(nestedLanguageId)) {\n // The nested language is in the process of being loaded\n promises.push(languages.TokenizationRegistry.getOrCreate(nestedLanguageId));\n }\n }\n if (promises.length === 0) {\n return {\n loaded: true\n };\n }\n return {\n loaded: false,\n promise: Promise.all(promises).then(_ => undefined)\n };\n }\n getInitialState() {\n const rootState = MonarchStackElementFactory.create(null, this._lexer.start);\n return MonarchLineStateFactory.create(rootState, null);\n }\n tokenize(line, hasEOL, lineState) {\n if (line.length >= this._maxTokenizationLineLength) {\n return nullTokenize(this._languageId, lineState);\n }\n const tokensCollector = new MonarchClassicTokensCollector();\n const endLineState = this._tokenize(line, hasEOL, lineState, tokensCollector);\n return tokensCollector.finalize(endLineState);\n }\n tokenizeEncoded(line, hasEOL, lineState) {\n if (line.length >= this._maxTokenizationLineLength) {\n return nullTokenizeEncoded(this._languageService.languageIdCodec.encodeLanguageId(this._languageId), lineState);\n }\n const tokensCollector = new MonarchModernTokensCollector(this._languageService, this._standaloneThemeService.getColorTheme().tokenTheme);\n const endLineState = this._tokenize(line, hasEOL, lineState, tokensCollector);\n return tokensCollector.finalize(endLineState);\n }\n _tokenize(line, hasEOL, lineState, collector) {\n if (lineState.embeddedLanguageData) {\n return this._nestedTokenize(line, hasEOL, lineState, 0, collector);\n }\n else {\n return this._myTokenize(line, hasEOL, lineState, 0, collector);\n }\n }\n _findLeavingNestedLanguageOffset(line, state) {\n let rules = this._lexer.tokenizer[state.stack.state];\n if (!rules) {\n rules = monarchCommon.findRules(this._lexer, state.stack.state); // do parent matching\n if (!rules) {\n throw monarchCommon.createError(this._lexer, 'tokenizer state is not defined: ' + state.stack.state);\n }\n }\n let popOffset = -1;\n let hasEmbeddedPopRule = false;\n for (const rule of rules) {\n if (!monarchCommon.isIAction(rule.action) || rule.action.nextEmbedded !== '@pop') {\n continue;\n }\n hasEmbeddedPopRule = true;\n let regex = rule.resolveRegex(state.stack.state);\n const regexSource = regex.source;\n if (regexSource.substr(0, 4) === '^(?:' && regexSource.substr(regexSource.length - 1, 1) === ')') {\n const flags = (regex.ignoreCase ? 'i' : '') + (regex.unicode ? 'u' : '');\n regex = new RegExp(regexSource.substr(4, regexSource.length - 5), flags);\n }\n const result = line.search(regex);\n if (result === -1 || (result !== 0 && rule.matchOnlyAtLineStart)) {\n continue;\n }\n if (popOffset === -1 || result < popOffset) {\n popOffset = result;\n }\n }\n if (!hasEmbeddedPopRule) {\n throw monarchCommon.createError(this._lexer, 'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: ' + state.stack.state);\n }\n return popOffset;\n }\n _nestedTokenize(line, hasEOL, lineState, offsetDelta, tokensCollector) {\n const popOffset = this._findLeavingNestedLanguageOffset(line, lineState);\n if (popOffset === -1) {\n // tokenization will not leave nested language\n const nestedEndState = tokensCollector.nestedLanguageTokenize(line, hasEOL, lineState.embeddedLanguageData, offsetDelta);\n return MonarchLineStateFactory.create(lineState.stack, new EmbeddedLanguageData(lineState.embeddedLanguageData.languageId, nestedEndState));\n }\n const nestedLanguageLine = line.substring(0, popOffset);\n if (nestedLanguageLine.length > 0) {\n // tokenize with the nested language\n tokensCollector.nestedLanguageTokenize(nestedLanguageLine, false, lineState.embeddedLanguageData, offsetDelta);\n }\n const restOfTheLine = line.substring(popOffset);\n return this._myTokenize(restOfTheLine, hasEOL, lineState, offsetDelta + popOffset, tokensCollector);\n }\n _safeRuleName(rule) {\n if (rule) {\n return rule.name;\n }\n return '(unknown)';\n }\n _myTokenize(lineWithoutLF, hasEOL, lineState, offsetDelta, tokensCollector) {\n tokensCollector.enterLanguage(this._languageId);\n const lineWithoutLFLength = lineWithoutLF.length;\n const line = (hasEOL && this._lexer.includeLF ? lineWithoutLF + '\\n' : lineWithoutLF);\n const lineLength = line.length;\n let embeddedLanguageData = lineState.embeddedLanguageData;\n let stack = lineState.stack;\n let pos = 0;\n let groupMatching = null;\n // See https://github.com/microsoft/monaco-editor/issues/1235\n // Evaluate rules at least once for an empty line\n let forceEvaluation = true;\n while (forceEvaluation || pos < lineLength) {\n const pos0 = pos;\n const stackLen0 = stack.depth;\n const groupLen0 = groupMatching ? groupMatching.groups.length : 0;\n const state = stack.state;\n let matches = null;\n let matched = null;\n let action = null;\n let rule = null;\n let enteringEmbeddedLanguage = null;\n // check if we need to process group matches first\n if (groupMatching) {\n matches = groupMatching.matches;\n const groupEntry = groupMatching.groups.shift();\n matched = groupEntry.matched;\n action = groupEntry.action;\n rule = groupMatching.rule;\n // cleanup if necessary\n if (groupMatching.groups.length === 0) {\n groupMatching = null;\n }\n }\n else {\n // otherwise we match on the token stream\n if (!forceEvaluation && pos >= lineLength) {\n // nothing to do\n break;\n }\n forceEvaluation = false;\n // get the rules for this state\n let rules = this._lexer.tokenizer[state];\n if (!rules) {\n rules = monarchCommon.findRules(this._lexer, state); // do parent matching\n if (!rules) {\n throw monarchCommon.createError(this._lexer, 'tokenizer state is not defined: ' + state);\n }\n }\n // try each rule until we match\n const restOfLine = line.substr(pos);\n for (const rule of rules) {\n if (pos === 0 || !rule.matchOnlyAtLineStart) {\n matches = restOfLine.match(rule.resolveRegex(state));\n if (matches) {\n matched = matches[0];\n action = rule.action;\n break;\n }\n }\n }\n }\n // We matched 'rule' with 'matches' and 'action'\n if (!matches) {\n matches = [''];\n matched = '';\n }\n if (!action) {\n // bad: we didn't match anything, and there is no action to take\n // we need to advance the stream or we get progress trouble\n if (pos < lineLength) {\n matches = [line.charAt(pos)];\n matched = matches[0];\n }\n action = this._lexer.defaultToken;\n }\n if (matched === null) {\n // should never happen, needed for strict null checking\n break;\n }\n // advance stream\n pos += matched.length;\n // maybe call action function (used for 'cases')\n while (monarchCommon.isFuzzyAction(action) && monarchCommon.isIAction(action) && action.test) {\n action = action.test(matched, matches, state, pos === lineLength);\n }\n let result = null;\n // set the result: either a string or an array of actions\n if (typeof action === 'string' || Array.isArray(action)) {\n result = action;\n }\n else if (action.group) {\n result = action.group;\n }\n else if (action.token !== null && action.token !== undefined) {\n // do $n replacements?\n if (action.tokenSubst) {\n result = monarchCommon.substituteMatches(this._lexer, action.token, matched, matches, state);\n }\n else {\n result = action.token;\n }\n // enter embedded language?\n if (action.nextEmbedded) {\n if (action.nextEmbedded === '@pop') {\n if (!embeddedLanguageData) {\n throw monarchCommon.createError(this._lexer, 'cannot pop embedded language if not inside one');\n }\n embeddedLanguageData = null;\n }\n else if (embeddedLanguageData) {\n throw monarchCommon.createError(this._lexer, 'cannot enter embedded language from within an embedded language');\n }\n else {\n enteringEmbeddedLanguage = monarchCommon.substituteMatches(this._lexer, action.nextEmbedded, matched, matches, state);\n }\n }\n // state transformations\n if (action.goBack) { // back up the stream..\n pos = Math.max(0, pos - action.goBack);\n }\n if (action.switchTo && typeof action.switchTo === 'string') {\n let nextState = monarchCommon.substituteMatches(this._lexer, action.switchTo, matched, matches, state); // switch state without a push...\n if (nextState[0] === '@') {\n nextState = nextState.substr(1); // peel off starting '@'\n }\n if (!monarchCommon.findRules(this._lexer, nextState)) {\n throw monarchCommon.createError(this._lexer, 'trying to switch to a state \\'' + nextState + '\\' that is undefined in rule: ' + this._safeRuleName(rule));\n }\n else {\n stack = stack.switchTo(nextState);\n }\n }\n else if (action.transform && typeof action.transform === 'function') {\n throw monarchCommon.createError(this._lexer, 'action.transform not supported');\n }\n else if (action.next) {\n if (action.next === '@push') {\n if (stack.depth >= this._lexer.maxStack) {\n throw monarchCommon.createError(this._lexer, 'maximum tokenizer stack size reached: [' +\n stack.state + ',' + stack.parent.state + ',...]');\n }\n else {\n stack = stack.push(state);\n }\n }\n else if (action.next === '@pop') {\n if (stack.depth <= 1) {\n throw monarchCommon.createError(this._lexer, 'trying to pop an empty stack in rule: ' + this._safeRuleName(rule));\n }\n else {\n stack = stack.pop();\n }\n }\n else if (action.next === '@popall') {\n stack = stack.popall();\n }\n else {\n let nextState = monarchCommon.substituteMatches(this._lexer, action.next, matched, matches, state);\n if (nextState[0] === '@') {\n nextState = nextState.substr(1); // peel off starting '@'\n }\n if (!monarchCommon.findRules(this._lexer, nextState)) {\n throw monarchCommon.createError(this._lexer, 'trying to set a next state \\'' + nextState + '\\' that is undefined in rule: ' + this._safeRuleName(rule));\n }\n else {\n stack = stack.push(nextState);\n }\n }\n }\n if (action.log && typeof (action.log) === 'string') {\n monarchCommon.log(this._lexer, this._lexer.languageId + ': ' + monarchCommon.substituteMatches(this._lexer, action.log, matched, matches, state));\n }\n }\n // check result\n if (result === null) {\n throw monarchCommon.createError(this._lexer, 'lexer rule has no well-defined action in rule: ' + this._safeRuleName(rule));\n }\n const computeNewStateForEmbeddedLanguage = (enteringEmbeddedLanguage) => {\n // support language names, mime types, and language ids\n const languageId = (this._languageService.getLanguageIdByLanguageName(enteringEmbeddedLanguage)\n || this._languageService.getLanguageIdByMimeType(enteringEmbeddedLanguage)\n || enteringEmbeddedLanguage);\n const embeddedLanguageData = this._getNestedEmbeddedLanguageData(languageId);\n if (pos < lineLength) {\n // there is content from the embedded language on this line\n const restOfLine = lineWithoutLF.substr(pos);\n return this._nestedTokenize(restOfLine, hasEOL, MonarchLineStateFactory.create(stack, embeddedLanguageData), offsetDelta + pos, tokensCollector);\n }\n else {\n return MonarchLineStateFactory.create(stack, embeddedLanguageData);\n }\n };\n // is the result a group match?\n if (Array.isArray(result)) {\n if (groupMatching && groupMatching.groups.length > 0) {\n throw monarchCommon.createError(this._lexer, 'groups cannot be nested: ' + this._safeRuleName(rule));\n }\n if (matches.length !== result.length + 1) {\n throw monarchCommon.createError(this._lexer, 'matched number of groups does not match the number of actions in rule: ' + this._safeRuleName(rule));\n }\n let totalLen = 0;\n for (let i = 1; i < matches.length; i++) {\n totalLen += matches[i].length;\n }\n if (totalLen !== matched.length) {\n throw monarchCommon.createError(this._lexer, 'with groups, all characters should be matched in consecutive groups in rule: ' + this._safeRuleName(rule));\n }\n groupMatching = {\n rule: rule,\n matches: matches,\n groups: []\n };\n for (let i = 0; i < result.length; i++) {\n groupMatching.groups[i] = {\n action: result[i],\n matched: matches[i + 1]\n };\n }\n pos -= matched.length;\n // call recursively to initiate first result match\n continue;\n }\n else {\n // regular result\n // check for '@rematch'\n if (result === '@rematch') {\n pos -= matched.length;\n matched = ''; // better set the next state too..\n matches = null;\n result = '';\n // Even though `@rematch` was specified, if `nextEmbedded` also specified,\n // a state transition should occur.\n if (enteringEmbeddedLanguage !== null) {\n return computeNewStateForEmbeddedLanguage(enteringEmbeddedLanguage);\n }\n }\n // check progress\n if (matched.length === 0) {\n if (lineLength === 0 || stackLen0 !== stack.depth || state !== stack.state || (!groupMatching ? 0 : groupMatching.groups.length) !== groupLen0) {\n continue;\n }\n else {\n throw monarchCommon.createError(this._lexer, 'no progress in tokenizer in rule: ' + this._safeRuleName(rule));\n }\n }\n // return the result (and check for brace matching)\n // todo: for efficiency we could pre-sanitize tokenPostfix and substitutions\n let tokenType = null;\n if (monarchCommon.isString(result) && result.indexOf('@brackets') === 0) {\n const rest = result.substr('@brackets'.length);\n const bracket = findBracket(this._lexer, matched);\n if (!bracket) {\n throw monarchCommon.createError(this._lexer, '@brackets token returned but no bracket defined as: ' + matched);\n }\n tokenType = monarchCommon.sanitize(bracket.token + rest);\n }\n else {\n const token = (result === '' ? '' : result + this._lexer.tokenPostfix);\n tokenType = monarchCommon.sanitize(token);\n }\n if (pos0 < lineWithoutLFLength) {\n tokensCollector.emit(pos0 + offsetDelta, tokenType);\n }\n }\n if (enteringEmbeddedLanguage !== null) {\n return computeNewStateForEmbeddedLanguage(enteringEmbeddedLanguage);\n }\n }\n return MonarchLineStateFactory.create(stack, embeddedLanguageData);\n }\n _getNestedEmbeddedLanguageData(languageId) {\n if (!this._languageService.isRegisteredLanguageId(languageId)) {\n return new EmbeddedLanguageData(languageId, NullState);\n }\n if (languageId !== this._languageId) {\n // Fire language loading event\n this._languageService.requestBasicLanguageFeatures(languageId);\n languages.TokenizationRegistry.getOrCreate(languageId);\n this._embeddedLanguages[languageId] = true;\n }\n const tokenizationSupport = languages.TokenizationRegistry.get(languageId);\n if (tokenizationSupport) {\n return new EmbeddedLanguageData(languageId, tokenizationSupport.getInitialState());\n }\n return new EmbeddedLanguageData(languageId, NullState);\n }\n};\nMonarchTokenizer = MonarchTokenizer_1 = __decorate([\n __param(4, IConfigurationService)\n], MonarchTokenizer);\nexport { MonarchTokenizer };\n/**\n * Searches for a bracket in the 'brackets' attribute that matches the input.\n */\nfunction findBracket(lexer, matched) {\n if (!matched) {\n return null;\n }\n matched = monarchCommon.fixCase(lexer, matched);\n const brackets = lexer.brackets;\n for (const bracket of brackets) {\n if (bracket.open === matched) {\n return { token: bracket.token, bracketType: 1 /* monarchCommon.MonarchBracket.Open */ };\n }\n else if (bracket.close === matched) {\n return { token: bracket.token, bracketType: -1 /* monarchCommon.MonarchBracket.Close */ };\n }\n }\n return null;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IStandaloneThemeService = createDecorator('themeService');\n"],"names":["IPadShowKeyboard","constructor","editor","super","this","widget","_register","onDidChangeConfiguration","update","shouldHaveWidget","getOption","ShowKeyboardWidget","dispose","ID","_domNode","document","createElement","className","e","focus","addOverlayWidget","removeOverlayWidget","getId","getDomNode","getPosition","preference","InspectTokensController_1","__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","InspectTokensController","get","getContribution","standaloneColorService","languageService","_editor","_languageService","_widget","onDidChangeModel","stop","onDidChangeModelLanguage","onKeyUp","keyCode","launch","hasModel","InspectTokensWidget","InspectTokens","id","label","alias","precondition","undefined","run","accessor","controller","allowEditorOverflow","_model","getModel","_tokenizationSupport","languageIdCodec","languageId","tokenizationSupport","encodedLanguageId","encodeLanguageId","getInitialState","tokenize","line","hasEOL","state","tokenizeEncoded","getSafeTokenizationSupport","getLanguageId","_compute","onDidChangeCursorPosition","addContentWidget","removeContentWidget","_ID","position","data","_getTokensAtLine","lineNumber","token1Index","tokens1","t","column","offset","token2Index","tokens2","lineContent","getLineContent","tokenText","tokenStartIndex","tokenEndIndex","substring","$","result","charIndex","len","charCode","charCodeAt","String","fromCharCode","renderTokenText","metadata","_decodeMetadata","_tokenTypeToString","tokenType","_fontStyleToString","fontStyle","foreground","background","type","layoutContentWidget","colorMap","decodeLanguageId","stateBeforeLine","_getStateBeforeLine","tokenizationResult1","tokenizationResult2","startState","tokens","endState","StandaloneCommandsQuickAccessProvider","activeTextEditorControl","_a","codeEditorService","getFocusedCodeEditor","instantiationService","keybindingService","commandService","telemetryService","dialogService","showAlias","getCommandPicks","getCodeEditorCommandPicks","hasAdditionalCommandPicks","getAdditionalCommandPicks","GotoLineAction","kbOpts","kbExpr","primary","weight","contextMenuOpts","group","order","quickAccess","show","PREFIX","registerQuickAccessProvider","ctor","prefix","helpEntries","description","commandId","StandaloneGotoLineQuickAccessProvider","editorService","onDidActiveTextEditorControlChange","mac","StandaloneGotoSymbolQuickAccessProvider","languageFeaturesService","outlineModelService","GotoSymbolAction","itemActivation","StandaloneReferencesController","contextKeyService","notificationService","storageService","configurationService","StandaloneCodeEditorService","themeService","onCodeEditorAdd","_checkContextKey","onCodeEditorRemove","_editorIsOpen","createKey","_activeCodeEditor","registerCodeEditorOpenHandler","async","input","source","sideBySide","doOpenEditor","hasCodeEditor","listCodeEditors","isSimpleWidget","set","setActiveCodeEditor","activeCodeEditor","getActiveCodeEditor","findModel","resource","schema","scheme","toString","selection","options","endLineNumber","endColumn","setSelection","revealRangeInCenter","pos","startLineNumber","startColumn","setPosition","revealPositionInCenter","model","uri","ttPolicy","createHTML","value","Colorizer","colorizeElement","domNode","theme","mimeType","getAttribute","console","error","Promise","resolve","getLanguageIdByMimeType","setTheme","text","firstChild","nodeValue","colorize","then","str","trustedhtml","innerHTML","err","tabSize","strings","substr","lines","isRegisteredLanguageId","_fakeColorize","execute","html","tokenizeResult","lineTokens","isBasicASCII","containsRTL","renderResult","inflate","concat","push","join","_actualColorize","status","getLoadStatus","loaded","promise","_colorize","colorizeLine","mightContainNonBasicASCII","mightContainRTL","colorizeModelLine","content","tokenization","forceTokenization","inflatedTokens","getLineTokens","Uint32Array","LAST_GENERATED_COMMAND_ID","ariaDomNodeCreated","StandaloneCodeEditor","domElement","_options","hoverService","accessibilityService","languageConfigurationService","ariaLabel","_standaloneKeybindingService","parent","aria","createAriaDomNode","ariaContainerElement","placement","enableInstantHover","createInstance","addCommand","keybinding","handler","context","warn","whenExpression","addDynamicKeybinding","createContextKey","defaultValue","_contextKeyService","addAction","_descriptor","Error","keybindings","keybindingsWhen","keybindingContext","contextMenuGroupId","contextMenuOrder","_accessor","args","toDispose","uniqueId","add","menuItem","command","title","when","Array","isArray","kb","internalAction","_actions","delete","_triggerCommand","handlerId","payload","_codeEditorService","StandaloneEditor","modelService","themeDomRegistration","registerEditorContainer","autoDetectHighContrast","setAutoDetectHighContrast","Boolean","_configurationService","_standaloneThemeService","language","createTextModel","_ownsModel","_attachModel","oldModelUrl","newModelUrl","_onDidChangeModel","fire","updateOptions","newOptions","_postDetachModelCleanup","detachedModel","StandaloneDiffEditor2","contextMenuService","editorProgressService","clipboardService","accessibilitySignalService","_createInnerEditor","container","getOriginalEditor","getModifiedEditor","descriptor","firstLF","indexOf","firstLine","doCreateModel","createByFilepathOrFirstLine","createById","languageSelection","createModel","create","override","onDidCreateEditor","listener","onDidCreateDiffEditor","onDiffEditorAdd","getEditors","getDiffEditors","listDiffEditors","createDiffEditor","createMultiFileDiffEditor","addEditorAction","addDynamicKeybindings","map","addKeybindingRule","rule","addKeybindingRules","rules","commandArgs","setModelLanguage","mimeTypeOrLanguageId","setLanguage","setModelMarkers","owner","markers","changeOne","removeAllMarkers","changeAll","getModelMarkers","filter","read","onDidChangeMarkers","onMarkerChanged","getModels","onDidCreateModel","onModelAdded","onWillDisposeModel","onModelRemoved","onModelLanguageChanged","oldLanguage","oldLanguageId","createWebWorker","opts","languages","nullTokenize","tokenizationResult","defineTheme","themeName","themeData","remeasureFonts","registerCommand","registerLinkOpener","opener","registerOpener","open","registerEditorOpener","selectionOrPosition","openCodeEditor","createMonacoEditorAPI","AccessibilitySupport","standaloneEnums","ContentWidgetPositionPreference","CursorChangeReason","DefaultEndOfLine","EditorAutoIndentStrategy","EditorOption","EndOfLinePreference","EndOfLineSequence","MinimapPosition","MinimapSectionHeaderStyle","MouseTargetType","OverlayWidgetPositionPreference","OverviewRulerLane","GlyphMarginLane","RenderLineNumbersType","RenderMinimap","ScrollbarVisibility","ScrollType","TextEditorCursorBlinkingStyle","TextEditorCursorStyle","TrackedRangeStickiness","WrappingIndent","InjectedTextCursorStops","PositionAffinity","ShowLightbulbIconMode","ConfigurationChangedEvent","BareFontInfo","FontInfo","TextModelResolvedOptions","FindMatch","ApplyUpdateResult","EditorZoom","EditorType","EditorOptions","bool","prop","defValue","string","createKeywordMatcher","arr","caseInsensitive","x","toLowerCase","hash","array","arrayToHash","word","hasOwnProperty","compileRegExp","lexer","handleSn","replace","hadExpansion","n","s","attr","sub","RegExp","monarchCommon","flags","ignoreCase","unicode","match","lastState","lastRegEx","createGuard","ruleName","tkey","val","scrut","oppat","matches","parseInt","tester","op","pat","test","words","elemType","obj","el","elem","inWords","re","patx","eos","patexp","split","name","scrutinee","num","parts","unshift","selectScrutinee","compileAction","action","token","newAction","tokenSubst","bracket","next","goBack","switchTo","log","nextEmbedded","usesEmbedded","results","cases","def","defaultToken","_case","Rule","regex","matchOnlyAtLineStart","setRegex","sregex","setAction","act","resolveRegex","compile","json","includeLF","noThrow","maxStack","start","tokenPostfix","lexerMin","addRules","newrules","include","tokenizer","newrule","rule1","matchOnlyAtStart","stateNames","brackets","close","register","getLanguages","getEncodedLanguageId","onLanguage","callback","disposable","onDidRequestRichLanguageFeatures","encounteredLanguageId","onLanguageEncountered","onDidRequestBasicLanguageFeatures","setLanguageConfiguration","configuration","EncodedTokenizationSupportAdapter","actual","_languageId","_actual","TokenizationSupportAdapter","adaptTokenize","_toClassicTokens","previousStartIndex","startIndex","scopes","actualResult","equals","_toBinaryTokens","tokenTheme","getColorTheme","resultLen","isThenable","setColorMap","standaloneThemeService","setColorMapOverride","createTokenizationSupportAdapter","provider","isEncodedTokensProvider","registerTokensProviderFactory","factory","adaptedFactory","setTokensProvider","setMonarchTokensProvider","languageDef","registerReferenceProvider","languageSelector","referenceProvider","registerRenameProvider","renameProvider","registerNewSymbolNameProvider","newSymbolNamesProvider","registerSignatureHelpProvider","signatureHelpProvider","registerHoverProvider","hoverProvider","provideHover","getWordAtPosition","range","registerDocumentSymbolProvider","documentSymbolProvider","registerDocumentHighlightProvider","documentHighlightProvider","registerLinkedEditingRangeProvider","linkedEditingRangeProvider","registerDefinitionProvider","definitionProvider","registerImplementationProvider","implementationProvider","registerTypeDefinitionProvider","typeDefinitionProvider","registerCodeLensProvider","codeLensProvider","registerCodeActionProvider","codeActionProvider","providedCodeActionKinds","documentation","provideCodeActions","m","only","trigger","resolveCodeAction","registerDocumentFormattingEditProvider","documentFormattingEditProvider","registerDocumentRangeFormattingEditProvider","documentRangeFormattingEditProvider","registerOnTypeFormattingEditProvider","onTypeFormattingEditProvider","registerLinkProvider","linkProvider","registerCompletionItemProvider","completionProvider","registerColorProvider","colorProvider","registerFoldingRangeProvider","foldingRangeProvider","registerDeclarationProvider","declarationProvider","registerSelectionRangeProvider","selectionRangeProvider","registerDocumentSemanticTokensProvider","documentSemanticTokensProvider","registerDocumentRangeSemanticTokensProvider","documentRangeSemanticTokensProvider","registerInlineCompletionsProvider","inlineCompletionsProvider","registerInlineEditProvider","inlineEditProvider","registerInlayHintsProvider","inlayHintsProvider","createMonacoLanguagesAPI","DocumentHighlightKind","CompletionItemKind","CompletionItemTag","CompletionItemInsertTextRule","SymbolKind","SymbolTag","IndentAction","CompletionTriggerKind","SignatureHelpTriggerKind","InlayHintKind","InlineCompletionTriggerKind","InlineEditTriggerKind","CodeActionTriggerType","NewSymbolNameTag","NewSymbolNameTriggerKind","PartialAcceptTriggerKind","HoverVerbosityAction","FoldingRangeKind","SelectedSuggestionInfo","StandaloneLayoutService","mainContainer","_b","getContainerDomNode","activeContainer","mainContainerDimension","dom","activeContainerDimension","containers","codeEditor","getContainer","whenContainerStylesLoaded","onDidLayoutMainContainer","onDidLayoutActiveContainer","onDidLayoutContainer","onDidChangeActiveContainer","onDidAddContainer","mainContainerOffset","top","quickPickTop","activeContainerOffset","EditorScopedLayoutService","_container","EditorScopedQuickInputService","host","contribution","QuickInputEditorContribution","_serviceBrand","getLayoutInfo","onDidLayoutChange","dimension","createController","StandaloneQuickInputService","activeService","quickInputService","mapEditorToService","newQuickInputService","onDidDispose","currentQuickInput","Map","pick","picks","createQuickPick","createInputBox","QuickInputEditorWidget","SimpleModel","disposed","_onWillDispose","textEditorModel","StandaloneTextModelService","createModelReference","reject","StandaloneEditorProgressService","NULL_PROGRESS_RUNNER","showWhile","delay","done","total","worked","StandaloneNotificationService","info","message","notify","severity","notification","NO_OP","prompt","choices","StandaloneCommandService","_onWillExecuteCommand","_onDidExecuteCommand","onDidExecuteCommand","event","_instantiationService","executeCommand","invokeFunction","apply","StandaloneKeybindingService","logService","_cachedResolver","_dynamicKeybindings","_domNodeListeners","addContainer","disposables","keyEvent","_dispatch","preventDefault","stopPropagation","_singleModifierDispatch","DomNodeListeners","removeContainer","domNodeListeners","splice","addCodeEditor","forEach","addDiffEditor","diffEditor","onDiffEditorRemove","entries","OS","weight1","weight2","extensionId","isBuiltinExtension","updateResolver","_onDidUpdateKeybindings","_getResolver","defaults","_toNormalizedKeybindingItems","overrides","_log","_documentHasFocus","items","isDefault","item","resolvedKeybindings","resolvedKeybinding","resolveKeyboardEvent","keyboardEvent","chord","ctrlKey","shiftKey","altKey","metaKey","isConfigurationOverrides","thing","overrideIdentifier","StandaloneConfigurationService","_onDidChangeConfiguration","defaultConfiguration","_configuration","reload","getValue","arg1","arg2","section","updateValues","values","previous","toData","changedKeys","entry","updateValue","configurationChangeEvent","keys","arg3","arg4","inspect","StandaloneResourceConfigurationService","affectedKeys","affectsConfiguration","getLanguage","getLanguageIdAtPosition","guessLanguageIdByFilepathOrFirstLine","StandaloneResourcePropertiesService","getEOL","eol","StandaloneWorkspaceContextService","SCHEME","authority","path","workspace","folders","index","getWorkspace","getWorkspaceFolder","updateConfigurationService","isDiffEditor","toUpdate","StandaloneBulkEditService","_modelService","hasPreviewHandler","editsIn","edits","textEdits","edit","versionId","getVersionId","textEdit","totalEdits","totalFiles","pushStackElement","pushEditOperations","ariaSummary","isApplied","StandaloneContextViewService","layoutService","showContextView","delegate","shadowRoot","StandaloneLanguageService","StandaloneLogService","StandaloneContextMenuService","contextViewService","menuService","configure","blockMouse","StandaloneServices","getUriLabel","fsPath","getUriBasenameLabel","publicLog2","confirm","confirmation","confirmed","doConfirm","detail","checkboxChecked","messageText","promptButtons","buttons","cancelButton","isExtensionDevelopment","isBuilt","withProgress","task","onDidCancel","report","_neverEmitter","onDidChangeTrust","isWorkspaceTrusted","A","playSignal","cue","serviceCollection","serviceId","initialized","initialize","onDidInitialize","serviceIdentifier","editorFeatures","feature","withServices","vs","base","inherit","colors","vs_dark","hc_black","hc_light","VS_LIGHT_THEME_NAME","VS_DARK_THEME_NAME","HC_BLACK_THEME_NAME","HC_LIGHT_THEME_NAME","themingRegistry","StandaloneTheme","standaloneThemeData","semanticHighlighting","isBuiltinTheme","defaultColors","_tokenTheme","notifyBaseUpdated","getColors","baseData","getBuiltinRules","has","getColor","colorId","useDefault","color","getDefault","resolveDefaultColor","defines","encodedTokensColors","editorForeground","editorBackground","getTokenStyleMetadata","modifiers","modelLanguage","_match","italic","bold","underline","strikethrough","builtinTheme","newBuiltInTheme","StandaloneThemeService","_onColorThemeChange","onDidColorThemeChange","_onProductIconThemeChange","onDidProductIconThemeChange","_environment","_builtInProductIconTheme","_autoDetectHighContrast","_knownThemes","iconsStyleSheet","_codiconCSS","getCSS","_themeCSS","_allCSS","_globalStyleElement","_styleElements","_colorMapOverride","_onOSSchemeChanged","onDidChange","_updateCSS","_registerShadowDomContainer","_registerRegularEditorContainer","style","textContent","styleElement","_theme","colorMapOverride","_updateThemeOrColorMap","_updateActualTheme","desiredTheme","wantsHighContrast","newThemeName","cssRules","hasRule","ruleCollector","addRule","getThemingParticipants","p","colorVariables","getColorMap","getFileIconTheme","hasFileIcons","hasFolderIcons","hidesExplorerArrows","getProductIconTheme","ToggleHighContrast","_originalThemeName","currentTheme","isFuzzyAction","what","isFuzzyActionArr","isString","isIAction","empty","fixCase","sanitize","msg","createError","substituteMatches","stateMatches","full","dollar","ofs","substituteMatchesRe","findRules","inState","idx","lastIndexOf","stateExists","MonarchTokenizer_1","MonarchStackElementFactory","_INSTANCE","maxCacheDepth","_maxCacheDepth","_entries","depth","MonarchStackElement","stackElementId","getStackElementId","element","_equals","a","b","other","pop","popall","EmbeddedLanguageData","clone","MonarchLineStateFactory","stack","embeddedLanguageData","MonarchLineState","MonarchClassicTokensCollector","_tokens","_lastTokenType","_lastTokenLanguage","enterLanguage","emit","startOffset","nestedLanguageTokenize","embeddedLanguageLine","offsetDelta","nestedLanguageId","embeddedModeState","nestedLanguageTokenizationSupport","nestedResult","finalize","MonarchModernTokensCollector","_prependTokens","_currentLanguageId","_lastTokenMetadata","_merge","aLen","bLen","cLen","MonarchTokenizer","_lexer","_embeddedLanguages","embeddedLoaded","emitting","isOneOfMyEmbeddedModes","changedLanguages","_maxTokenizationLineLength","promises","nestedModeStatus","all","_","rootState","lineState","tokensCollector","endLineState","_tokenize","collector","_nestedTokenize","_myTokenize","_findLeavingNestedLanguageOffset","popOffset","hasEmbeddedPopRule","regexSource","search","nestedEndState","nestedLanguageLine","restOfTheLine","_safeRuleName","lineWithoutLF","lineWithoutLFLength","lineLength","groupMatching","forceEvaluation","pos0","stackLen0","groupLen0","groups","matched","enteringEmbeddedLanguage","groupEntry","shift","restOfLine","charAt","Math","max","nextState","transform","computeNewStateForEmbeddedLanguage","getLanguageIdByLanguageName","_getNestedEmbeddedLanguageData","totalLen","rest","findBracket","requestBasicLanguageFeatures","bracketType","IStandaloneThemeService"],"sourceRoot":""}