{"version":3,"file":"static/js/8723_f75f5d4b84aa0a268afa.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/common/services/editorBaseApi.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/findSectionHeaders.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/editorWorker.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/getIconClasses.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/languageFeatureDebounce.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/languageFeatures.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/languageFeaturesService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/languagesAssociations.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/languagesRegistry.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/languageService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorations.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorationsService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/model.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/modelService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/resolverService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensDto.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensProviderStyling.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensStyling.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensStylingService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/textResourceConfiguration.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/treeViewsDnd.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/treeViewsDndService.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/services/unicodeTextModelHighlighter.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/common/standaloneStrings.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 { CancellationTokenSource } from '../../../base/common/cancellation.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { KeyChord } from '../../../base/common/keyCodes.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { Token } from '../languages.js';\nimport * as standaloneEnums from '../standalone/standaloneEnums.js';\nexport class KeyMod {\n static chord(firstPart, secondPart) {\n return KeyChord(firstPart, secondPart);\n }\n}\nKeyMod.CtrlCmd = 2048 /* ConstKeyMod.CtrlCmd */;\nKeyMod.Shift = 1024 /* ConstKeyMod.Shift */;\nKeyMod.Alt = 512 /* ConstKeyMod.Alt */;\nKeyMod.WinCtrl = 256 /* ConstKeyMod.WinCtrl */;\nexport function createMonacoBaseAPI() {\n return {\n editor: undefined, // undefined override expected here\n languages: undefined, // undefined override expected here\n CancellationTokenSource: CancellationTokenSource,\n Emitter: Emitter,\n KeyCode: standaloneEnums.KeyCode,\n KeyMod: KeyMod,\n Position: Position,\n Range: Range,\n Selection: Selection,\n SelectionDirection: standaloneEnums.SelectionDirection,\n MarkerSeverity: standaloneEnums.MarkerSeverity,\n MarkerTag: standaloneEnums.MarkerTag,\n Uri: URI,\n Token: Token\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 *--------------------------------------------------------------------------------------------*/\nconst markRegex = new RegExp('\\\\bMARK:\\\\s*(.*)$', 'd');\nconst trimDashesRegex = /^-+|-+$/g;\n/**\n * Find section headers in the model.\n *\n * @param model the text model to search in\n * @param options options to search with\n * @returns an array of section headers\n */\nexport function findSectionHeaders(model, options) {\n var _a;\n let headers = [];\n if (options.findRegionSectionHeaders && ((_a = options.foldingRules) === null || _a === void 0 ? void 0 : _a.markers)) {\n const regionHeaders = collectRegionHeaders(model, options);\n headers = headers.concat(regionHeaders);\n }\n if (options.findMarkSectionHeaders) {\n const markHeaders = collectMarkHeaders(model);\n headers = headers.concat(markHeaders);\n }\n return headers;\n}\nfunction collectRegionHeaders(model, options) {\n const regionHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n const match = lineContent.match(options.foldingRules.markers.start);\n if (match) {\n const range = { startLineNumber: lineNumber, startColumn: match[0].length + 1, endLineNumber: lineNumber, endColumn: lineContent.length + 1 };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(lineContent.substring(match[0].length)),\n shouldBeInComments: false\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n regionHeaders.push(sectionHeader);\n }\n }\n }\n }\n return regionHeaders;\n}\nfunction collectMarkHeaders(model) {\n const markHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n addMarkHeaderIfFound(lineContent, lineNumber, markHeaders);\n }\n return markHeaders;\n}\nfunction addMarkHeaderIfFound(lineContent, lineNumber, sectionHeaders) {\n markRegex.lastIndex = 0;\n const match = markRegex.exec(lineContent);\n if (match) {\n const column = match.indices[1][0] + 1;\n const endColumn = match.indices[1][1] + 1;\n const range = { startLineNumber: lineNumber, startColumn: column, endLineNumber: lineNumber, endColumn: endColumn };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(match[1]),\n shouldBeInComments: true\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n sectionHeaders.push(sectionHeader);\n }\n }\n }\n}\nfunction getHeaderText(text) {\n text = text.trim();\n const hasSeparatorLine = text.startsWith('-');\n text = text.replace(trimDashesRegex, '');\n return { text, hasSeparatorLine };\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 { stringDiff } from '../../../base/common/diff/diff.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { MirrorTextModel as BaseMirrorModel } from '../model/mirrorTextModel.js';\nimport { ensureValidWordDefinition, getWordAtText } from '../core/wordHelper.js';\nimport { computeLinks } from '../languages/linkComputer.js';\nimport { BasicInplaceReplace } from '../languages/supports/inplaceReplaceSupport.js';\nimport { createMonacoBaseAPI } from './editorBaseApi.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { UnicodeTextModelHighlighter } from './unicodeTextModelHighlighter.js';\nimport { linesDiffComputers } from '../diff/linesDiffComputers.js';\nimport { createProxyObject, getAllMethodNames } from '../../../base/common/objects.js';\nimport { computeDefaultDocumentColors } from '../languages/defaultDocumentColorsComputer.js';\nimport { findSectionHeaders } from './findSectionHeaders.js';\n/**\n * @internal\n */\nclass MirrorModel extends BaseMirrorModel {\n get uri() {\n return this._uri;\n }\n get eol() {\n return this._eol;\n }\n getValue() {\n return this.getText();\n }\n findMatches(regex) {\n const matches = [];\n for (let i = 0; i < this._lines.length; i++) {\n const line = this._lines[i];\n const offsetToAdd = this.offsetAt(new Position(i + 1, 1));\n const iteratorOverMatches = line.matchAll(regex);\n for (const match of iteratorOverMatches) {\n if (match.index || match.index === 0) {\n match.index = match.index + offsetToAdd;\n }\n matches.push(match);\n }\n }\n return matches;\n }\n getLinesContent() {\n return this._lines.slice(0);\n }\n getLineCount() {\n return this._lines.length;\n }\n getLineContent(lineNumber) {\n return this._lines[lineNumber - 1];\n }\n getWordAtPosition(position, wordDefinition) {\n const wordAtText = getWordAtText(position.column, ensureValidWordDefinition(wordDefinition), this._lines[position.lineNumber - 1], 0);\n if (wordAtText) {\n return new Range(position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn);\n }\n return null;\n }\n words(wordDefinition) {\n const lines = this._lines;\n const wordenize = this._wordenize.bind(this);\n let lineNumber = 0;\n let lineText = '';\n let wordRangesIdx = 0;\n let wordRanges = [];\n return {\n *[Symbol.iterator]() {\n while (true) {\n if (wordRangesIdx < wordRanges.length) {\n const value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end);\n wordRangesIdx += 1;\n yield value;\n }\n else {\n if (lineNumber < lines.length) {\n lineText = lines[lineNumber];\n wordRanges = wordenize(lineText, wordDefinition);\n wordRangesIdx = 0;\n lineNumber += 1;\n }\n else {\n break;\n }\n }\n }\n }\n };\n }\n getLineWords(lineNumber, wordDefinition) {\n const content = this._lines[lineNumber - 1];\n const ranges = this._wordenize(content, wordDefinition);\n const words = [];\n for (const range of ranges) {\n words.push({\n word: content.substring(range.start, range.end),\n startColumn: range.start + 1,\n endColumn: range.end + 1\n });\n }\n return words;\n }\n _wordenize(content, wordDefinition) {\n const result = [];\n let match;\n wordDefinition.lastIndex = 0; // reset lastIndex just to be sure\n while (match = wordDefinition.exec(content)) {\n if (match[0].length === 0) {\n // it did match the empty string\n break;\n }\n result.push({ start: match.index, end: match.index + match[0].length });\n }\n return result;\n }\n getValueInRange(range) {\n range = this._validateRange(range);\n if (range.startLineNumber === range.endLineNumber) {\n return this._lines[range.startLineNumber - 1].substring(range.startColumn - 1, range.endColumn - 1);\n }\n const lineEnding = this._eol;\n const startLineIndex = range.startLineNumber - 1;\n const endLineIndex = range.endLineNumber - 1;\n const resultLines = [];\n resultLines.push(this._lines[startLineIndex].substring(range.startColumn - 1));\n for (let i = startLineIndex + 1; i < endLineIndex; i++) {\n resultLines.push(this._lines[i]);\n }\n resultLines.push(this._lines[endLineIndex].substring(0, range.endColumn - 1));\n return resultLines.join(lineEnding);\n }\n offsetAt(position) {\n position = this._validatePosition(position);\n this._ensureLineStarts();\n return this._lineStarts.getPrefixSum(position.lineNumber - 2) + (position.column - 1);\n }\n positionAt(offset) {\n offset = Math.floor(offset);\n offset = Math.max(0, offset);\n this._ensureLineStarts();\n const out = this._lineStarts.getIndexOf(offset);\n const lineLength = this._lines[out.index].length;\n // Ensure we return a valid position\n return {\n lineNumber: 1 + out.index,\n column: 1 + Math.min(out.remainder, lineLength)\n };\n }\n _validateRange(range) {\n const start = this._validatePosition({ lineNumber: range.startLineNumber, column: range.startColumn });\n const end = this._validatePosition({ lineNumber: range.endLineNumber, column: range.endColumn });\n if (start.lineNumber !== range.startLineNumber\n || start.column !== range.startColumn\n || end.lineNumber !== range.endLineNumber\n || end.column !== range.endColumn) {\n return {\n startLineNumber: start.lineNumber,\n startColumn: start.column,\n endLineNumber: end.lineNumber,\n endColumn: end.column\n };\n }\n return range;\n }\n _validatePosition(position) {\n if (!Position.isIPosition(position)) {\n throw new Error('bad position');\n }\n let { lineNumber, column } = position;\n let hasChanged = false;\n if (lineNumber < 1) {\n lineNumber = 1;\n column = 1;\n hasChanged = true;\n }\n else if (lineNumber > this._lines.length) {\n lineNumber = this._lines.length;\n column = this._lines[lineNumber - 1].length + 1;\n hasChanged = true;\n }\n else {\n const maxCharacter = this._lines[lineNumber - 1].length + 1;\n if (column < 1) {\n column = 1;\n hasChanged = true;\n }\n else if (column > maxCharacter) {\n column = maxCharacter;\n hasChanged = true;\n }\n }\n if (!hasChanged) {\n return position;\n }\n else {\n return { lineNumber, column };\n }\n }\n}\n/**\n * @internal\n */\nexport class EditorSimpleWorker {\n constructor(host, foreignModuleFactory) {\n this._host = host;\n this._models = Object.create(null);\n this._foreignModuleFactory = foreignModuleFactory;\n this._foreignModule = null;\n }\n dispose() {\n this._models = Object.create(null);\n }\n _getModel(uri) {\n return this._models[uri];\n }\n _getModels() {\n const all = [];\n Object.keys(this._models).forEach((key) => all.push(this._models[key]));\n return all;\n }\n acceptNewModel(data) {\n this._models[data.url] = new MirrorModel(URI.parse(data.url), data.lines, data.EOL, data.versionId);\n }\n acceptModelChanged(strURL, e) {\n if (!this._models[strURL]) {\n return;\n }\n const model = this._models[strURL];\n model.onEvents(e);\n }\n acceptRemovedModel(strURL) {\n if (!this._models[strURL]) {\n return;\n }\n delete this._models[strURL];\n }\n async computeUnicodeHighlights(url, options, range) {\n const model = this._getModel(url);\n if (!model) {\n return { ranges: [], hasMore: false, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 };\n }\n return UnicodeTextModelHighlighter.computeUnicodeHighlights(model, options, range);\n }\n async findSectionHeaders(url, options) {\n const model = this._getModel(url);\n if (!model) {\n return [];\n }\n return findSectionHeaders(model, options);\n }\n // ---- BEGIN diff --------------------------------------------------------------------------\n async computeDiff(originalUrl, modifiedUrl, options, algorithm) {\n const original = this._getModel(originalUrl);\n const modified = this._getModel(modifiedUrl);\n if (!original || !modified) {\n return null;\n }\n const result = EditorSimpleWorker.computeDiff(original, modified, options, algorithm);\n return result;\n }\n static computeDiff(originalTextModel, modifiedTextModel, options, algorithm) {\n const diffAlgorithm = algorithm === 'advanced' ? linesDiffComputers.getDefault() : linesDiffComputers.getLegacy();\n const originalLines = originalTextModel.getLinesContent();\n const modifiedLines = modifiedTextModel.getLinesContent();\n const result = diffAlgorithm.computeDiff(originalLines, modifiedLines, options);\n const identical = (result.changes.length > 0 ? false : this._modelsAreIdentical(originalTextModel, modifiedTextModel));\n function getLineChanges(changes) {\n return changes.map(m => {\n var _a;\n return ([m.original.startLineNumber, m.original.endLineNumberExclusive, m.modified.startLineNumber, m.modified.endLineNumberExclusive, (_a = m.innerChanges) === null || _a === void 0 ? void 0 : _a.map(m => [\n m.originalRange.startLineNumber,\n m.originalRange.startColumn,\n m.originalRange.endLineNumber,\n m.originalRange.endColumn,\n m.modifiedRange.startLineNumber,\n m.modifiedRange.startColumn,\n m.modifiedRange.endLineNumber,\n m.modifiedRange.endColumn,\n ])]);\n });\n }\n return {\n identical,\n quitEarly: result.hitTimeout,\n changes: getLineChanges(result.changes),\n moves: result.moves.map(m => ([\n m.lineRangeMapping.original.startLineNumber,\n m.lineRangeMapping.original.endLineNumberExclusive,\n m.lineRangeMapping.modified.startLineNumber,\n m.lineRangeMapping.modified.endLineNumberExclusive,\n getLineChanges(m.changes)\n ])),\n };\n }\n static _modelsAreIdentical(original, modified) {\n const originalLineCount = original.getLineCount();\n const modifiedLineCount = modified.getLineCount();\n if (originalLineCount !== modifiedLineCount) {\n return false;\n }\n for (let line = 1; line <= originalLineCount; line++) {\n const originalLine = original.getLineContent(line);\n const modifiedLine = modified.getLineContent(line);\n if (originalLine !== modifiedLine) {\n return false;\n }\n }\n return true;\n }\n async computeMoreMinimalEdits(modelUrl, edits, pretty) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return edits;\n }\n const result = [];\n let lastEol = undefined;\n edits = edits.slice(0).sort((a, b) => {\n if (a.range && b.range) {\n return Range.compareRangesUsingStarts(a.range, b.range);\n }\n // eol only changes should go to the end\n const aRng = a.range ? 0 : 1;\n const bRng = b.range ? 0 : 1;\n return aRng - bRng;\n });\n // merge adjacent edits\n let writeIndex = 0;\n for (let readIndex = 1; readIndex < edits.length; readIndex++) {\n if (Range.getEndPosition(edits[writeIndex].range).equals(Range.getStartPosition(edits[readIndex].range))) {\n edits[writeIndex].range = Range.fromPositions(Range.getStartPosition(edits[writeIndex].range), Range.getEndPosition(edits[readIndex].range));\n edits[writeIndex].text += edits[readIndex].text;\n }\n else {\n writeIndex++;\n edits[writeIndex] = edits[readIndex];\n }\n }\n edits.length = writeIndex + 1;\n for (let { range, text, eol } of edits) {\n if (typeof eol === 'number') {\n lastEol = eol;\n }\n if (Range.isEmpty(range) && !text) {\n // empty change\n continue;\n }\n const original = model.getValueInRange(range);\n text = text.replace(/\\r\\n|\\n|\\r/g, model.eol);\n if (original === text) {\n // noop\n continue;\n }\n // make sure diff won't take too long\n if (Math.max(text.length, original.length) > EditorSimpleWorker._diffLimit) {\n result.push({ range, text });\n continue;\n }\n // compute diff between original and edit.text\n const changes = stringDiff(original, text, pretty);\n const editOffset = model.offsetAt(Range.lift(range).getStartPosition());\n for (const change of changes) {\n const start = model.positionAt(editOffset + change.originalStart);\n const end = model.positionAt(editOffset + change.originalStart + change.originalLength);\n const newEdit = {\n text: text.substr(change.modifiedStart, change.modifiedLength),\n range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column }\n };\n if (model.getValueInRange(newEdit.range) !== newEdit.text) {\n result.push(newEdit);\n }\n }\n }\n if (typeof lastEol === 'number') {\n result.push({ eol: lastEol, text: '', range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } });\n }\n return result;\n }\n // ---- END minimal edits ---------------------------------------------------------------\n async computeLinks(modelUrl) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return null;\n }\n return computeLinks(model);\n }\n // --- BEGIN default document colors -----------------------------------------------------------\n async computeDefaultDocumentColors(modelUrl) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return null;\n }\n return computeDefaultDocumentColors(model);\n }\n async textualSuggest(modelUrls, leadingWord, wordDef, wordDefFlags) {\n const sw = new StopWatch();\n const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n const seen = new Set();\n outer: for (const url of modelUrls) {\n const model = this._getModel(url);\n if (!model) {\n continue;\n }\n for (const word of model.words(wordDefRegExp)) {\n if (word === leadingWord || !isNaN(Number(word))) {\n continue;\n }\n seen.add(word);\n if (seen.size > EditorSimpleWorker._suggestionsLimit) {\n break outer;\n }\n }\n }\n return { words: Array.from(seen), duration: sw.elapsed() };\n }\n // ---- END suggest --------------------------------------------------------------------------\n //#region -- word ranges --\n async computeWordRanges(modelUrl, range, wordDef, wordDefFlags) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return Object.create(null);\n }\n const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n const result = Object.create(null);\n for (let line = range.startLineNumber; line < range.endLineNumber; line++) {\n const words = model.getLineWords(line, wordDefRegExp);\n for (const word of words) {\n if (!isNaN(Number(word.word))) {\n continue;\n }\n let array = result[word.word];\n if (!array) {\n array = [];\n result[word.word] = array;\n }\n array.push({\n startLineNumber: line,\n startColumn: word.startColumn,\n endLineNumber: line,\n endColumn: word.endColumn\n });\n }\n }\n return result;\n }\n //#endregion\n async navigateValueSet(modelUrl, range, up, wordDef, wordDefFlags) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return null;\n }\n const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n if (range.startColumn === range.endColumn) {\n range = {\n startLineNumber: range.startLineNumber,\n startColumn: range.startColumn,\n endLineNumber: range.endLineNumber,\n endColumn: range.endColumn + 1\n };\n }\n const selectionText = model.getValueInRange(range);\n const wordRange = model.getWordAtPosition({ lineNumber: range.startLineNumber, column: range.startColumn }, wordDefRegExp);\n if (!wordRange) {\n return null;\n }\n const word = model.getValueInRange(wordRange);\n const result = BasicInplaceReplace.INSTANCE.navigateValueSet(range, selectionText, wordRange, word, up);\n return result;\n }\n // ---- BEGIN foreign module support --------------------------------------------------------------------------\n loadForeignModule(moduleId, createData, foreignHostMethods) {\n const proxyMethodRequest = (method, args) => {\n return this._host.fhr(method, args);\n };\n const foreignHost = createProxyObject(foreignHostMethods, proxyMethodRequest);\n const ctx = {\n host: foreignHost,\n getMirrorModels: () => {\n return this._getModels();\n }\n };\n if (this._foreignModuleFactory) {\n this._foreignModule = this._foreignModuleFactory(ctx, createData);\n // static foreing module\n return Promise.resolve(getAllMethodNames(this._foreignModule));\n }\n // ESM-comment-begin\n // \t\treturn new Promise((resolve, reject) => {\n // \t\t\trequire([moduleId], (foreignModule: { create: IForeignModuleFactory }) => {\n // \t\t\t\tthis._foreignModule = foreignModule.create(ctx, createData);\n // \n // \t\t\t\tresolve(getAllMethodNames(this._foreignModule));\n // \n // \t\t\t}, reject);\n // \t\t});\n // ESM-comment-end\n // ESM-uncomment-begin\n return Promise.reject(new Error(`Unexpected usage`));\n // ESM-uncomment-end\n }\n // foreign method request\n fmr(method, args) {\n if (!this._foreignModule || typeof this._foreignModule[method] !== 'function') {\n return Promise.reject(new Error('Missing requestHandler or method: ' + method));\n }\n try {\n return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args));\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n}\n// ---- END diff --------------------------------------------------------------------------\n// ---- BEGIN minimal edits ---------------------------------------------------------------\nEditorSimpleWorker._diffLimit = 100000;\n// ---- BEGIN suggest --------------------------------------------------------------------------\nEditorSimpleWorker._suggestionsLimit = 10000;\n/**\n * Called on the worker side\n * @internal\n */\nexport function create(host) {\n return new EditorSimpleWorker(host, null);\n}\nif (typeof importScripts === 'function') {\n // Running in a web worker\n globalThis.monaco = createMonacoBaseAPI();\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 IEditorWorkerService = createDecorator('editorWorkerService');\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 { Schemas } from '../../../base/common/network.js';\nimport { DataUri } from '../../../base/common/resources.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nimport { FileKind } from '../../../platform/files/common/files.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nconst fileIconDirectoryRegex = /(?:\\/|^)(?:([^\\/]+)\\/)?([^\\/]+)$/;\nexport function getIconClasses(modelService, languageService, resource, fileKind, icon) {\n if (ThemeIcon.isThemeIcon(icon)) {\n return [`codicon-${icon.id}`, 'predefined-file-icon'];\n }\n if (URI.isUri(icon)) {\n return [];\n }\n // we always set these base classes even if we do not have a path\n const classes = fileKind === FileKind.ROOT_FOLDER ? ['rootfolder-icon'] : fileKind === FileKind.FOLDER ? ['folder-icon'] : ['file-icon'];\n if (resource) {\n // Get the path and name of the resource. For data-URIs, we need to parse specially\n let name;\n if (resource.scheme === Schemas.data) {\n const metadata = DataUri.parseMetaData(resource);\n name = metadata.get(DataUri.META_DATA_LABEL);\n }\n else {\n const match = resource.path.match(fileIconDirectoryRegex);\n if (match) {\n name = cssEscape(match[2].toLowerCase());\n if (match[1]) {\n classes.push(`${cssEscape(match[1].toLowerCase())}-name-dir-icon`); // parent directory\n }\n }\n else {\n name = cssEscape(resource.authority.toLowerCase());\n }\n }\n // Root Folders\n if (fileKind === FileKind.ROOT_FOLDER) {\n classes.push(`${name}-root-name-folder-icon`);\n }\n // Folders\n else if (fileKind === FileKind.FOLDER) {\n classes.push(`${name}-name-folder-icon`);\n }\n // Files\n else {\n // Name & Extension(s)\n if (name) {\n classes.push(`${name}-name-file-icon`);\n classes.push(`name-file-icon`); // extra segment to increase file-name score\n // Avoid doing an explosive combination of extensions for very long filenames\n // (most file systems do not allow files > 255 length) with lots of `.` characters\n // https://github.com/microsoft/vscode/issues/116199\n if (name.length <= 255) {\n const dotSegments = name.split('.');\n for (let i = 1; i < dotSegments.length; i++) {\n classes.push(`${dotSegments.slice(i).join('.')}-ext-file-icon`); // add each combination of all found extensions if more than one\n }\n }\n classes.push(`ext-file-icon`); // extra segment to increase file-ext score\n }\n // Detected Mode\n const detectedLanguageId = detectLanguageId(modelService, languageService, resource);\n if (detectedLanguageId) {\n classes.push(`${cssEscape(detectedLanguageId)}-lang-file-icon`);\n }\n }\n }\n return classes;\n}\nfunction detectLanguageId(modelService, languageService, resource) {\n if (!resource) {\n return null; // we need a resource at least\n }\n let languageId = null;\n // Data URI: check for encoded metadata\n if (resource.scheme === Schemas.data) {\n const metadata = DataUri.parseMetaData(resource);\n const mime = metadata.get(DataUri.META_DATA_MIME);\n if (mime) {\n languageId = languageService.getLanguageIdByMimeType(mime);\n }\n }\n // Any other URI: check for model if existing\n else {\n const model = modelService.getModel(resource);\n if (model) {\n languageId = model.getLanguageId();\n }\n }\n // only take if the language id is specific (aka no just plain text)\n if (languageId && languageId !== PLAINTEXT_LANGUAGE_ID) {\n return languageId;\n }\n // otherwise fallback to path based detection\n return languageService.guessLanguageIdByFilepathOrFirstLine(resource);\n}\nfunction cssEscape(str) {\n return str.replace(/[\\11\\12\\14\\15\\40]/g, '/'); // HTML class names can not contain certain whitespace characters, use / instead, which doesn't exist in file names.\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 { doHash } from '../../../base/common/hash.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { clamp, MovingAverage, SlidingWindowAverage } from '../../../base/common/numbers.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nimport { matchesScheme } from '../../../base/common/network.js';\nexport const ILanguageFeatureDebounceService = createDecorator('ILanguageFeatureDebounceService');\nvar IdentityHash;\n(function (IdentityHash) {\n const _hashes = new WeakMap();\n let pool = 0;\n function of(obj) {\n let value = _hashes.get(obj);\n if (value === undefined) {\n value = ++pool;\n _hashes.set(obj, value);\n }\n return value;\n }\n IdentityHash.of = of;\n})(IdentityHash || (IdentityHash = {}));\nclass NullDebounceInformation {\n constructor(_default) {\n this._default = _default;\n }\n get(_model) {\n return this._default;\n }\n update(_model, _value) {\n return this._default;\n }\n default() {\n return this._default;\n }\n}\nclass FeatureDebounceInformation {\n constructor(_logService, _name, _registry, _default, _min, _max) {\n this._logService = _logService;\n this._name = _name;\n this._registry = _registry;\n this._default = _default;\n this._min = _min;\n this._max = _max;\n this._cache = new LRUCache(50, 0.7);\n }\n _key(model) {\n return model.id + this._registry.all(model).reduce((hashVal, obj) => doHash(IdentityHash.of(obj), hashVal), 0);\n }\n get(model) {\n const key = this._key(model);\n const avg = this._cache.get(key);\n return avg\n ? clamp(avg.value, this._min, this._max)\n : this.default();\n }\n update(model, value) {\n const key = this._key(model);\n let avg = this._cache.get(key);\n if (!avg) {\n avg = new SlidingWindowAverage(6);\n this._cache.set(key, avg);\n }\n const newValue = clamp(avg.update(value), this._min, this._max);\n if (!matchesScheme(model.uri, 'output')) {\n this._logService.trace(`[DEBOUNCE: ${this._name}] for ${model.uri.toString()} is ${newValue}ms`);\n }\n return newValue;\n }\n _overall() {\n const result = new MovingAverage();\n for (const [, avg] of this._cache) {\n result.update(avg.value);\n }\n return result.value;\n }\n default() {\n const value = (this._overall() | 0) || this._default;\n return clamp(value, this._min, this._max);\n }\n}\nlet LanguageFeatureDebounceService = class LanguageFeatureDebounceService {\n constructor(_logService, envService) {\n this._logService = _logService;\n this._data = new Map();\n this._isDev = envService.isExtensionDevelopment || !envService.isBuilt;\n }\n for(feature, name, config) {\n var _a, _b, _c;\n const min = (_a = config === null || config === void 0 ? void 0 : config.min) !== null && _a !== void 0 ? _a : 50;\n const max = (_b = config === null || config === void 0 ? void 0 : config.max) !== null && _b !== void 0 ? _b : min ** 2;\n const extra = (_c = config === null || config === void 0 ? void 0 : config.key) !== null && _c !== void 0 ? _c : undefined;\n const key = `${IdentityHash.of(feature)},${min}${extra ? ',' + extra : ''}`;\n let info = this._data.get(key);\n if (!info) {\n if (this._isDev) {\n this._logService.debug(`[DEBOUNCE: ${name}] is disabled in developed mode`);\n info = new NullDebounceInformation(min * 1.5);\n }\n else {\n info = new FeatureDebounceInformation(this._logService, name, feature, (this._overallAverage() | 0) || (min * 1.5), // default is overall default or derived from min-value\n min, max);\n }\n this._data.set(key, info);\n }\n return info;\n }\n _overallAverage() {\n // Average of all language features. Not a great value but an approximation\n const result = new MovingAverage();\n for (const info of this._data.values()) {\n result.update(info.default());\n }\n return result.value;\n }\n};\nLanguageFeatureDebounceService = __decorate([\n __param(0, ILogService),\n __param(1, IEnvironmentService)\n], LanguageFeatureDebounceService);\nexport { LanguageFeatureDebounceService };\nregisterSingleton(ILanguageFeatureDebounceService, LanguageFeatureDebounceService, 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 *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ILanguageFeaturesService = createDecorator('ILanguageFeaturesService');\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 { LanguageFeatureRegistry } from '../languageFeatureRegistry.js';\nimport { ILanguageFeaturesService } from './languageFeatures.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nexport class LanguageFeaturesService {\n constructor() {\n this.referenceProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.renameProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.newSymbolNamesProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.codeActionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.definitionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.typeDefinitionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.declarationProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.implementationProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentSymbolProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.inlayHintsProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.colorProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.codeLensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentRangeFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.onTypeFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.signatureHelpProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.hoverProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentHighlightProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.multiDocumentHighlightProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.selectionRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.foldingRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.linkProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.inlineCompletionsProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.inlineEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.completionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.linkedEditingRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentRangeSemanticTokensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentSemanticTokensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentDropEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n this.documentPasteEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n }\n _score(uri) {\n var _a;\n return (_a = this._notebookTypeResolver) === null || _a === void 0 ? void 0 : _a.call(this, uri);\n }\n}\nregisterSingleton(ILanguageFeaturesService, LanguageFeaturesService, 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 *--------------------------------------------------------------------------------------------*/\nimport { parse } from '../../../base/common/glob.js';\nimport { Mimes } from '../../../base/common/mime.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { basename, posix } from '../../../base/common/path.js';\nimport { DataUri } from '../../../base/common/resources.js';\nimport { startsWithUTF8BOM } from '../../../base/common/strings.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nlet registeredAssociations = [];\nlet nonUserRegisteredAssociations = [];\nlet userRegisteredAssociations = [];\n/**\n * Associate a language to the registry (platform).\n * * **NOTE**: This association will lose over associations registered using `registerConfiguredLanguageAssociation`.\n * * **NOTE**: Use `clearPlatformLanguageAssociations` to remove all associations registered using this function.\n */\nexport function registerPlatformLanguageAssociation(association, warnOnOverwrite = false) {\n _registerLanguageAssociation(association, false, warnOnOverwrite);\n}\nfunction _registerLanguageAssociation(association, userConfigured, warnOnOverwrite) {\n // Register\n const associationItem = toLanguageAssociationItem(association, userConfigured);\n registeredAssociations.push(associationItem);\n if (!associationItem.userConfigured) {\n nonUserRegisteredAssociations.push(associationItem);\n }\n else {\n userRegisteredAssociations.push(associationItem);\n }\n // Check for conflicts unless this is a user configured association\n if (warnOnOverwrite && !associationItem.userConfigured) {\n registeredAssociations.forEach(a => {\n if (a.mime === associationItem.mime || a.userConfigured) {\n return; // same mime or userConfigured is ok\n }\n if (associationItem.extension && a.extension === associationItem.extension) {\n console.warn(`Overwriting extension <<${associationItem.extension}>> to now point to mime <<${associationItem.mime}>>`);\n }\n if (associationItem.filename && a.filename === associationItem.filename) {\n console.warn(`Overwriting filename <<${associationItem.filename}>> to now point to mime <<${associationItem.mime}>>`);\n }\n if (associationItem.filepattern && a.filepattern === associationItem.filepattern) {\n console.warn(`Overwriting filepattern <<${associationItem.filepattern}>> to now point to mime <<${associationItem.mime}>>`);\n }\n if (associationItem.firstline && a.firstline === associationItem.firstline) {\n console.warn(`Overwriting firstline <<${associationItem.firstline}>> to now point to mime <<${associationItem.mime}>>`);\n }\n });\n }\n}\nfunction toLanguageAssociationItem(association, userConfigured) {\n return {\n id: association.id,\n mime: association.mime,\n filename: association.filename,\n extension: association.extension,\n filepattern: association.filepattern,\n firstline: association.firstline,\n userConfigured: userConfigured,\n filenameLowercase: association.filename ? association.filename.toLowerCase() : undefined,\n extensionLowercase: association.extension ? association.extension.toLowerCase() : undefined,\n filepatternLowercase: association.filepattern ? parse(association.filepattern.toLowerCase()) : undefined,\n filepatternOnPath: association.filepattern ? association.filepattern.indexOf(posix.sep) >= 0 : false\n };\n}\n/**\n * Clear language associations from the registry (platform).\n */\nexport function clearPlatformLanguageAssociations() {\n registeredAssociations = registeredAssociations.filter(a => a.userConfigured);\n nonUserRegisteredAssociations = [];\n}\n/**\n * @see `getMimeTypes`\n */\nexport function getLanguageIds(resource, firstLine) {\n return getAssociations(resource, firstLine).map(item => item.id);\n}\nfunction getAssociations(resource, firstLine) {\n let path;\n if (resource) {\n switch (resource.scheme) {\n case Schemas.file:\n path = resource.fsPath;\n break;\n case Schemas.data: {\n const metadata = DataUri.parseMetaData(resource);\n path = metadata.get(DataUri.META_DATA_LABEL);\n break;\n }\n case Schemas.vscodeNotebookCell:\n // File path not relevant for language detection of cell\n path = undefined;\n break;\n default:\n path = resource.path;\n }\n }\n if (!path) {\n return [{ id: 'unknown', mime: Mimes.unknown }];\n }\n path = path.toLowerCase();\n const filename = basename(path);\n // 1.) User configured mappings have highest priority\n const configuredLanguage = getAssociationByPath(path, filename, userRegisteredAssociations);\n if (configuredLanguage) {\n return [configuredLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n }\n // 2.) Registered mappings have middle priority\n const registeredLanguage = getAssociationByPath(path, filename, nonUserRegisteredAssociations);\n if (registeredLanguage) {\n return [registeredLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n }\n // 3.) Firstline has lowest priority\n if (firstLine) {\n const firstlineLanguage = getAssociationByFirstline(firstLine);\n if (firstlineLanguage) {\n return [firstlineLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n }\n }\n return [{ id: 'unknown', mime: Mimes.unknown }];\n}\nfunction getAssociationByPath(path, filename, associations) {\n var _a;\n let filenameMatch = undefined;\n let patternMatch = undefined;\n let extensionMatch = undefined;\n // We want to prioritize associations based on the order they are registered so that the last registered\n // association wins over all other. This is for https://github.com/microsoft/vscode/issues/20074\n for (let i = associations.length - 1; i >= 0; i--) {\n const association = associations[i];\n // First exact name match\n if (filename === association.filenameLowercase) {\n filenameMatch = association;\n break; // take it!\n }\n // Longest pattern match\n if (association.filepattern) {\n if (!patternMatch || association.filepattern.length > patternMatch.filepattern.length) {\n const target = association.filepatternOnPath ? path : filename; // match on full path if pattern contains path separator\n if ((_a = association.filepatternLowercase) === null || _a === void 0 ? void 0 : _a.call(association, target)) {\n patternMatch = association;\n }\n }\n }\n // Longest extension match\n if (association.extension) {\n if (!extensionMatch || association.extension.length > extensionMatch.extension.length) {\n if (filename.endsWith(association.extensionLowercase)) {\n extensionMatch = association;\n }\n }\n }\n }\n // 1.) Exact name match has second highest priority\n if (filenameMatch) {\n return filenameMatch;\n }\n // 2.) Match on pattern\n if (patternMatch) {\n return patternMatch;\n }\n // 3.) Match on extension comes next\n if (extensionMatch) {\n return extensionMatch;\n }\n return undefined;\n}\nfunction getAssociationByFirstline(firstLine) {\n if (startsWithUTF8BOM(firstLine)) {\n firstLine = firstLine.substr(1);\n }\n if (firstLine.length > 0) {\n // We want to prioritize associations based on the order they are registered so that the last registered\n // association wins over all other. This is for https://github.com/microsoft/vscode/issues/20074\n for (let i = registeredAssociations.length - 1; i >= 0; i--) {\n const association = registeredAssociations[i];\n if (!association.firstline) {\n continue;\n }\n const matches = firstLine.match(association.firstline);\n if (matches && matches.length > 0) {\n return association;\n }\n }\n }\n return undefined;\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 { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { regExpLeadsToEndlessLoop } from '../../../base/common/strings.js';\nimport { clearPlatformLanguageAssociations, getLanguageIds, registerPlatformLanguageAssociation } from './languagesAssociations.js';\nimport { ModesRegistry, PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nimport { Extensions } from '../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst NULL_LANGUAGE_ID = 'vs.editor.nullLanguage';\nexport class LanguageIdCodec {\n constructor() {\n this._languageIdToLanguage = [];\n this._languageToLanguageId = new Map();\n this._register(NULL_LANGUAGE_ID, 0 /* LanguageId.Null */);\n this._register(PLAINTEXT_LANGUAGE_ID, 1 /* LanguageId.PlainText */);\n this._nextLanguageId = 2;\n }\n _register(language, languageId) {\n this._languageIdToLanguage[languageId] = language;\n this._languageToLanguageId.set(language, languageId);\n }\n register(language) {\n if (this._languageToLanguageId.has(language)) {\n return;\n }\n const languageId = this._nextLanguageId++;\n this._register(language, languageId);\n }\n encodeLanguageId(languageId) {\n return this._languageToLanguageId.get(languageId) || 0 /* LanguageId.Null */;\n }\n decodeLanguageId(languageId) {\n return this._languageIdToLanguage[languageId] || NULL_LANGUAGE_ID;\n }\n}\nexport class LanguagesRegistry extends Disposable {\n constructor(useModesRegistry = true, warnOnOverwrite = false) {\n super();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n LanguagesRegistry.instanceCount++;\n this._warnOnOverwrite = warnOnOverwrite;\n this.languageIdCodec = new LanguageIdCodec();\n this._dynamicLanguages = [];\n this._languages = {};\n this._mimeTypesMap = {};\n this._nameMap = {};\n this._lowercaseNameMap = {};\n if (useModesRegistry) {\n this._initializeFromRegistry();\n this._register(ModesRegistry.onDidChangeLanguages((m) => {\n this._initializeFromRegistry();\n }));\n }\n }\n dispose() {\n LanguagesRegistry.instanceCount--;\n super.dispose();\n }\n _initializeFromRegistry() {\n this._languages = {};\n this._mimeTypesMap = {};\n this._nameMap = {};\n this._lowercaseNameMap = {};\n clearPlatformLanguageAssociations();\n const desc = [].concat(ModesRegistry.getLanguages()).concat(this._dynamicLanguages);\n this._registerLanguages(desc);\n }\n _registerLanguages(desc) {\n for (const d of desc) {\n this._registerLanguage(d);\n }\n // Rebuild fast path maps\n this._mimeTypesMap = {};\n this._nameMap = {};\n this._lowercaseNameMap = {};\n Object.keys(this._languages).forEach((langId) => {\n const language = this._languages[langId];\n if (language.name) {\n this._nameMap[language.name] = language.identifier;\n }\n language.aliases.forEach((alias) => {\n this._lowercaseNameMap[alias.toLowerCase()] = language.identifier;\n });\n language.mimetypes.forEach((mimetype) => {\n this._mimeTypesMap[mimetype] = language.identifier;\n });\n });\n Registry.as(Extensions.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds());\n this._onDidChange.fire();\n }\n _registerLanguage(lang) {\n const langId = lang.id;\n let resolvedLanguage;\n if (hasOwnProperty.call(this._languages, langId)) {\n resolvedLanguage = this._languages[langId];\n }\n else {\n this.languageIdCodec.register(langId);\n resolvedLanguage = {\n identifier: langId,\n name: null,\n mimetypes: [],\n aliases: [],\n extensions: [],\n filenames: [],\n configurationFiles: [],\n icons: []\n };\n this._languages[langId] = resolvedLanguage;\n }\n this._mergeLanguage(resolvedLanguage, lang);\n }\n _mergeLanguage(resolvedLanguage, lang) {\n const langId = lang.id;\n let primaryMime = null;\n if (Array.isArray(lang.mimetypes) && lang.mimetypes.length > 0) {\n resolvedLanguage.mimetypes.push(...lang.mimetypes);\n primaryMime = lang.mimetypes[0];\n }\n if (!primaryMime) {\n primaryMime = `text/x-${langId}`;\n resolvedLanguage.mimetypes.push(primaryMime);\n }\n if (Array.isArray(lang.extensions)) {\n if (lang.configuration) {\n // insert first as this appears to be the 'primary' language definition\n resolvedLanguage.extensions = lang.extensions.concat(resolvedLanguage.extensions);\n }\n else {\n resolvedLanguage.extensions = resolvedLanguage.extensions.concat(lang.extensions);\n }\n for (const extension of lang.extensions) {\n registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, extension: extension }, this._warnOnOverwrite);\n }\n }\n if (Array.isArray(lang.filenames)) {\n for (const filename of lang.filenames) {\n registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, filename: filename }, this._warnOnOverwrite);\n resolvedLanguage.filenames.push(filename);\n }\n }\n if (Array.isArray(lang.filenamePatterns)) {\n for (const filenamePattern of lang.filenamePatterns) {\n registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, filepattern: filenamePattern }, this._warnOnOverwrite);\n }\n }\n if (typeof lang.firstLine === 'string' && lang.firstLine.length > 0) {\n let firstLineRegexStr = lang.firstLine;\n if (firstLineRegexStr.charAt(0) !== '^') {\n firstLineRegexStr = '^' + firstLineRegexStr;\n }\n try {\n const firstLineRegex = new RegExp(firstLineRegexStr);\n if (!regExpLeadsToEndlessLoop(firstLineRegex)) {\n registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, firstline: firstLineRegex }, this._warnOnOverwrite);\n }\n }\n catch (err) {\n // Most likely, the regex was bad\n console.warn(`[${lang.id}]: Invalid regular expression \\`${firstLineRegexStr}\\`: `, err);\n }\n }\n resolvedLanguage.aliases.push(langId);\n let langAliases = null;\n if (typeof lang.aliases !== 'undefined' && Array.isArray(lang.aliases)) {\n if (lang.aliases.length === 0) {\n // signal that this language should not get a name\n langAliases = [null];\n }\n else {\n langAliases = lang.aliases;\n }\n }\n if (langAliases !== null) {\n for (const langAlias of langAliases) {\n if (!langAlias || langAlias.length === 0) {\n continue;\n }\n resolvedLanguage.aliases.push(langAlias);\n }\n }\n const containsAliases = (langAliases !== null && langAliases.length > 0);\n if (containsAliases && langAliases[0] === null) {\n // signal that this language should not get a name\n }\n else {\n const bestName = (containsAliases ? langAliases[0] : null) || langId;\n if (containsAliases || !resolvedLanguage.name) {\n resolvedLanguage.name = bestName;\n }\n }\n if (lang.configuration) {\n resolvedLanguage.configurationFiles.push(lang.configuration);\n }\n if (lang.icon) {\n resolvedLanguage.icons.push(lang.icon);\n }\n }\n isRegisteredLanguageId(languageId) {\n if (!languageId) {\n return false;\n }\n return hasOwnProperty.call(this._languages, languageId);\n }\n getRegisteredLanguageIds() {\n return Object.keys(this._languages);\n }\n getLanguageIdByLanguageName(languageName) {\n const languageNameLower = languageName.toLowerCase();\n if (!hasOwnProperty.call(this._lowercaseNameMap, languageNameLower)) {\n return null;\n }\n return this._lowercaseNameMap[languageNameLower];\n }\n getLanguageIdByMimeType(mimeType) {\n if (!mimeType) {\n return null;\n }\n if (hasOwnProperty.call(this._mimeTypesMap, mimeType)) {\n return this._mimeTypesMap[mimeType];\n }\n return null;\n }\n guessLanguageIdByFilepathOrFirstLine(resource, firstLine) {\n if (!resource && !firstLine) {\n return [];\n }\n return getLanguageIds(resource, firstLine);\n }\n}\nLanguagesRegistry.instanceCount = 0;\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 { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { LanguagesRegistry } from './languagesRegistry.js';\nimport { firstOrDefault } from '../../../base/common/arrays.js';\nimport { TokenizationRegistry } from '../languages.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nexport class LanguageService extends Disposable {\n constructor(warnOnOverwrite = false) {\n super();\n this._onDidRequestBasicLanguageFeatures = this._register(new Emitter());\n this.onDidRequestBasicLanguageFeatures = this._onDidRequestBasicLanguageFeatures.event;\n this._onDidRequestRichLanguageFeatures = this._register(new Emitter());\n this.onDidRequestRichLanguageFeatures = this._onDidRequestRichLanguageFeatures.event;\n this._onDidChange = this._register(new Emitter({ leakWarningThreshold: 200 /* https://github.com/microsoft/vscode/issues/119968 */ }));\n this.onDidChange = this._onDidChange.event;\n this._requestedBasicLanguages = new Set();\n this._requestedRichLanguages = new Set();\n LanguageService.instanceCount++;\n this._registry = this._register(new LanguagesRegistry(true, warnOnOverwrite));\n this.languageIdCodec = this._registry.languageIdCodec;\n this._register(this._registry.onDidChange(() => this._onDidChange.fire()));\n }\n dispose() {\n LanguageService.instanceCount--;\n super.dispose();\n }\n isRegisteredLanguageId(languageId) {\n return this._registry.isRegisteredLanguageId(languageId);\n }\n getLanguageIdByLanguageName(languageName) {\n return this._registry.getLanguageIdByLanguageName(languageName);\n }\n getLanguageIdByMimeType(mimeType) {\n return this._registry.getLanguageIdByMimeType(mimeType);\n }\n guessLanguageIdByFilepathOrFirstLine(resource, firstLine) {\n const languageIds = this._registry.guessLanguageIdByFilepathOrFirstLine(resource, firstLine);\n return firstOrDefault(languageIds, null);\n }\n createById(languageId) {\n return new LanguageSelection(this.onDidChange, () => {\n return this._createAndGetLanguageIdentifier(languageId);\n });\n }\n createByFilepathOrFirstLine(resource, firstLine) {\n return new LanguageSelection(this.onDidChange, () => {\n const languageId = this.guessLanguageIdByFilepathOrFirstLine(resource, firstLine);\n return this._createAndGetLanguageIdentifier(languageId);\n });\n }\n _createAndGetLanguageIdentifier(languageId) {\n if (!languageId || !this.isRegisteredLanguageId(languageId)) {\n // Fall back to plain text if language is unknown\n languageId = PLAINTEXT_LANGUAGE_ID;\n }\n return languageId;\n }\n requestBasicLanguageFeatures(languageId) {\n if (!this._requestedBasicLanguages.has(languageId)) {\n this._requestedBasicLanguages.add(languageId);\n this._onDidRequestBasicLanguageFeatures.fire(languageId);\n }\n }\n requestRichLanguageFeatures(languageId) {\n if (!this._requestedRichLanguages.has(languageId)) {\n this._requestedRichLanguages.add(languageId);\n // Ensure basic features are requested\n this.requestBasicLanguageFeatures(languageId);\n // Ensure tokenizers are created\n TokenizationRegistry.getOrCreate(languageId);\n this._onDidRequestRichLanguageFeatures.fire(languageId);\n }\n }\n}\nLanguageService.instanceCount = 0;\nclass LanguageSelection {\n constructor(_onDidChangeLanguages, _selector) {\n this._onDidChangeLanguages = _onDidChangeLanguages;\n this._selector = _selector;\n this._listener = null;\n this._emitter = null;\n this.languageId = this._selector();\n }\n _dispose() {\n if (this._listener) {\n this._listener.dispose();\n this._listener = null;\n }\n if (this._emitter) {\n this._emitter.dispose();\n this._emitter = null;\n }\n }\n get onDidChange() {\n if (!this._listener) {\n this._listener = this._onDidChangeLanguages(() => this._evaluate());\n }\n if (!this._emitter) {\n this._emitter = new Emitter({\n onDidRemoveLastListener: () => {\n this._dispose();\n }\n });\n }\n return this._emitter.event;\n }\n _evaluate() {\n var _a;\n const languageId = this._selector();\n if (languageId === this.languageId) {\n // no change\n return;\n }\n this.languageId = languageId;\n (_a = this._emitter) === null || _a === void 0 ? void 0 : _a.fire(this.languageId);\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 { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IMarkerDecorationsService = createDecorator('markerDecorationsService');\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 { IMarkerService, MarkerSeverity } from '../../../platform/markers/common/markers.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport { OverviewRulerLane } from '../model.js';\nimport { themeColorFromId } from '../../../platform/theme/common/themeService.js';\nimport { overviewRulerWarning, overviewRulerInfo, overviewRulerError } from '../core/editorColorRegistry.js';\nimport { IModelService } from './model.js';\nimport { Range } from '../core/range.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { minimapInfo, minimapWarning, minimapError } from '../../../platform/theme/common/colorRegistry.js';\nimport { BidirectionalMap, ResourceMap } from '../../../base/common/map.js';\nimport { diffSets } from '../../../base/common/collections.js';\nlet MarkerDecorationsService = class MarkerDecorationsService extends Disposable {\n constructor(modelService, _markerService) {\n super();\n this._markerService = _markerService;\n this._onDidChangeMarker = this._register(new Emitter());\n this._markerDecorations = new ResourceMap();\n modelService.getModels().forEach(model => this._onModelAdded(model));\n this._register(modelService.onModelAdded(this._onModelAdded, this));\n this._register(modelService.onModelRemoved(this._onModelRemoved, this));\n this._register(this._markerService.onMarkerChanged(this._handleMarkerChange, this));\n }\n dispose() {\n super.dispose();\n this._markerDecorations.forEach(value => value.dispose());\n this._markerDecorations.clear();\n }\n getMarker(uri, decoration) {\n const markerDecorations = this._markerDecorations.get(uri);\n return markerDecorations ? (markerDecorations.getMarker(decoration) || null) : null;\n }\n _handleMarkerChange(changedResources) {\n changedResources.forEach((resource) => {\n const markerDecorations = this._markerDecorations.get(resource);\n if (markerDecorations) {\n this._updateDecorations(markerDecorations);\n }\n });\n }\n _onModelAdded(model) {\n const markerDecorations = new MarkerDecorations(model);\n this._markerDecorations.set(model.uri, markerDecorations);\n this._updateDecorations(markerDecorations);\n }\n _onModelRemoved(model) {\n var _a;\n const markerDecorations = this._markerDecorations.get(model.uri);\n if (markerDecorations) {\n markerDecorations.dispose();\n this._markerDecorations.delete(model.uri);\n }\n // clean up markers for internal, transient models\n if (model.uri.scheme === Schemas.inMemory\n || model.uri.scheme === Schemas.internal\n || model.uri.scheme === Schemas.vscode) {\n (_a = this._markerService) === null || _a === void 0 ? void 0 : _a.read({ resource: model.uri }).map(marker => marker.owner).forEach(owner => this._markerService.remove(owner, [model.uri]));\n }\n }\n _updateDecorations(markerDecorations) {\n // Limit to the first 500 errors/warnings\n const markers = this._markerService.read({ resource: markerDecorations.model.uri, take: 500 });\n if (markerDecorations.update(markers)) {\n this._onDidChangeMarker.fire(markerDecorations.model);\n }\n }\n};\nMarkerDecorationsService = __decorate([\n __param(0, IModelService),\n __param(1, IMarkerService)\n], MarkerDecorationsService);\nexport { MarkerDecorationsService };\nclass MarkerDecorations extends Disposable {\n constructor(model) {\n super();\n this.model = model;\n this._map = new BidirectionalMap();\n this._register(toDisposable(() => {\n this.model.deltaDecorations([...this._map.values()], []);\n this._map.clear();\n }));\n }\n update(markers) {\n // We use the fact that marker instances are not recreated when different owners\n // update. So we can compare references to find out what changed since the last update.\n const { added, removed } = diffSets(new Set(this._map.keys()), new Set(markers));\n if (added.length === 0 && removed.length === 0) {\n return false;\n }\n const oldIds = removed.map(marker => this._map.get(marker));\n const newDecorations = added.map(marker => {\n return {\n range: this._createDecorationRange(this.model, marker),\n options: this._createDecorationOption(marker)\n };\n });\n const ids = this.model.deltaDecorations(oldIds, newDecorations);\n for (const removedMarker of removed) {\n this._map.delete(removedMarker);\n }\n for (let index = 0; index < ids.length; index++) {\n this._map.set(added[index], ids[index]);\n }\n return true;\n }\n getMarker(decoration) {\n return this._map.getKey(decoration.id);\n }\n _createDecorationRange(model, rawMarker) {\n let ret = Range.lift(rawMarker);\n if (rawMarker.severity === MarkerSeverity.Hint && !this._hasMarkerTag(rawMarker, 1 /* MarkerTag.Unnecessary */) && !this._hasMarkerTag(rawMarker, 2 /* MarkerTag.Deprecated */)) {\n // * never render hints on multiple lines\n // * make enough space for three dots\n ret = ret.setEndPosition(ret.startLineNumber, ret.startColumn + 2);\n }\n ret = model.validateRange(ret);\n if (ret.isEmpty()) {\n const maxColumn = model.getLineLastNonWhitespaceColumn(ret.startLineNumber) ||\n model.getLineMaxColumn(ret.startLineNumber);\n if (maxColumn === 1 || ret.endColumn >= maxColumn) {\n // empty line or behind eol\n // keep the range as is, it will be rendered 1ch wide\n return ret;\n }\n const word = model.getWordAtPosition(ret.getStartPosition());\n if (word) {\n ret = new Range(ret.startLineNumber, word.startColumn, ret.endLineNumber, word.endColumn);\n }\n }\n else if (rawMarker.endColumn === Number.MAX_VALUE && rawMarker.startColumn === 1 && ret.startLineNumber === ret.endLineNumber) {\n const minColumn = model.getLineFirstNonWhitespaceColumn(rawMarker.startLineNumber);\n if (minColumn < ret.endColumn) {\n ret = new Range(ret.startLineNumber, minColumn, ret.endLineNumber, ret.endColumn);\n rawMarker.startColumn = minColumn;\n }\n }\n return ret;\n }\n _createDecorationOption(marker) {\n let className;\n let color = undefined;\n let zIndex;\n let inlineClassName = undefined;\n let minimap;\n switch (marker.severity) {\n case MarkerSeverity.Hint:\n if (this._hasMarkerTag(marker, 2 /* MarkerTag.Deprecated */)) {\n className = undefined;\n }\n else if (this._hasMarkerTag(marker, 1 /* MarkerTag.Unnecessary */)) {\n className = \"squiggly-unnecessary\" /* ClassName.EditorUnnecessaryDecoration */;\n }\n else {\n className = \"squiggly-hint\" /* ClassName.EditorHintDecoration */;\n }\n zIndex = 0;\n break;\n case MarkerSeverity.Info:\n className = \"squiggly-info\" /* ClassName.EditorInfoDecoration */;\n color = themeColorFromId(overviewRulerInfo);\n zIndex = 10;\n minimap = {\n color: themeColorFromId(minimapInfo),\n position: 1 /* MinimapPosition.Inline */\n };\n break;\n case MarkerSeverity.Warning:\n className = \"squiggly-warning\" /* ClassName.EditorWarningDecoration */;\n color = themeColorFromId(overviewRulerWarning);\n zIndex = 20;\n minimap = {\n color: themeColorFromId(minimapWarning),\n position: 1 /* MinimapPosition.Inline */\n };\n break;\n case MarkerSeverity.Error:\n default:\n className = \"squiggly-error\" /* ClassName.EditorErrorDecoration */;\n color = themeColorFromId(overviewRulerError);\n zIndex = 30;\n minimap = {\n color: themeColorFromId(minimapError),\n position: 1 /* MinimapPosition.Inline */\n };\n break;\n }\n if (marker.tags) {\n if (marker.tags.indexOf(1 /* MarkerTag.Unnecessary */) !== -1) {\n inlineClassName = \"squiggly-inline-unnecessary\" /* ClassName.EditorUnnecessaryInlineDecoration */;\n }\n if (marker.tags.indexOf(2 /* MarkerTag.Deprecated */) !== -1) {\n inlineClassName = \"squiggly-inline-deprecated\" /* ClassName.EditorDeprecatedInlineDecoration */;\n }\n }\n return {\n description: 'marker-decoration',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className,\n showIfCollapsed: true,\n overviewRuler: {\n color,\n position: OverviewRulerLane.Right\n },\n minimap,\n zIndex,\n inlineClassName,\n };\n }\n _hasMarkerTag(marker, tag) {\n if (marker.tags) {\n return marker.tags.indexOf(tag) >= 0;\n }\n return false;\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 { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IModelService = createDecorator('modelService');\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 ModelService_1;\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { TextModel } from '../model/textModel.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';\nimport { ILanguageService } from '../languages/language.js';\nimport { ITextResourcePropertiesService } from './textResourceConfiguration.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { IUndoRedoService } from '../../../platform/undoRedo/common/undoRedo.js';\nimport { StringSHA1 } from '../../../base/common/hash.js';\nimport { isEditStackElement } from '../model/editStack.js';\nimport { Schemas } from '../../../base/common/network.js';\nimport { equals } from '../../../base/common/objects.js';\nimport { ILanguageConfigurationService } from '../languages/languageConfigurationRegistry.js';\nfunction MODEL_ID(resource) {\n return resource.toString();\n}\nclass ModelData {\n constructor(model, onWillDispose, onDidChangeLanguage) {\n this.model = model;\n this._modelEventListeners = new DisposableStore();\n this.model = model;\n this._modelEventListeners.add(model.onWillDispose(() => onWillDispose(model)));\n this._modelEventListeners.add(model.onDidChangeLanguage((e) => onDidChangeLanguage(model, e)));\n }\n dispose() {\n this._modelEventListeners.dispose();\n }\n}\nconst DEFAULT_EOL = (platform.isLinux || platform.isMacintosh) ? 1 /* DefaultEndOfLine.LF */ : 2 /* DefaultEndOfLine.CRLF */;\nclass DisposedModelInfo {\n constructor(uri, initialUndoRedoSnapshot, time, sharesUndoRedoStack, heapSize, sha1, versionId, alternativeVersionId) {\n this.uri = uri;\n this.initialUndoRedoSnapshot = initialUndoRedoSnapshot;\n this.time = time;\n this.sharesUndoRedoStack = sharesUndoRedoStack;\n this.heapSize = heapSize;\n this.sha1 = sha1;\n this.versionId = versionId;\n this.alternativeVersionId = alternativeVersionId;\n }\n}\nlet ModelService = ModelService_1 = class ModelService extends Disposable {\n constructor(_configurationService, _resourcePropertiesService, _undoRedoService, _languageService, _languageConfigurationService) {\n super();\n this._configurationService = _configurationService;\n this._resourcePropertiesService = _resourcePropertiesService;\n this._undoRedoService = _undoRedoService;\n this._languageService = _languageService;\n this._languageConfigurationService = _languageConfigurationService;\n this._onModelAdded = this._register(new Emitter());\n this.onModelAdded = this._onModelAdded.event;\n this._onModelRemoved = this._register(new Emitter());\n this.onModelRemoved = this._onModelRemoved.event;\n this._onModelModeChanged = this._register(new Emitter());\n this.onModelLanguageChanged = this._onModelModeChanged.event;\n this._modelCreationOptionsByLanguageAndResource = Object.create(null);\n this._models = {};\n this._disposedModels = new Map();\n this._disposedModelsHeapSize = 0;\n this._register(this._configurationService.onDidChangeConfiguration(e => this._updateModelOptions(e)));\n this._updateModelOptions(undefined);\n }\n static _readModelOptions(config, isForSimpleWidget) {\n var _a;\n let tabSize = EDITOR_MODEL_DEFAULTS.tabSize;\n if (config.editor && typeof config.editor.tabSize !== 'undefined') {\n const parsedTabSize = parseInt(config.editor.tabSize, 10);\n if (!isNaN(parsedTabSize)) {\n tabSize = parsedTabSize;\n }\n if (tabSize < 1) {\n tabSize = 1;\n }\n }\n let indentSize = 'tabSize';\n if (config.editor && typeof config.editor.indentSize !== 'undefined' && config.editor.indentSize !== 'tabSize') {\n const parsedIndentSize = parseInt(config.editor.indentSize, 10);\n if (!isNaN(parsedIndentSize)) {\n indentSize = Math.max(parsedIndentSize, 1);\n }\n }\n let insertSpaces = EDITOR_MODEL_DEFAULTS.insertSpaces;\n if (config.editor && typeof config.editor.insertSpaces !== 'undefined') {\n insertSpaces = (config.editor.insertSpaces === 'false' ? false : Boolean(config.editor.insertSpaces));\n }\n let newDefaultEOL = DEFAULT_EOL;\n const eol = config.eol;\n if (eol === '\\r\\n') {\n newDefaultEOL = 2 /* DefaultEndOfLine.CRLF */;\n }\n else if (eol === '\\n') {\n newDefaultEOL = 1 /* DefaultEndOfLine.LF */;\n }\n let trimAutoWhitespace = EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;\n if (config.editor && typeof config.editor.trimAutoWhitespace !== 'undefined') {\n trimAutoWhitespace = (config.editor.trimAutoWhitespace === 'false' ? false : Boolean(config.editor.trimAutoWhitespace));\n }\n let detectIndentation = EDITOR_MODEL_DEFAULTS.detectIndentation;\n if (config.editor && typeof config.editor.detectIndentation !== 'undefined') {\n detectIndentation = (config.editor.detectIndentation === 'false' ? false : Boolean(config.editor.detectIndentation));\n }\n let largeFileOptimizations = EDITOR_MODEL_DEFAULTS.largeFileOptimizations;\n if (config.editor && typeof config.editor.largeFileOptimizations !== 'undefined') {\n largeFileOptimizations = (config.editor.largeFileOptimizations === 'false' ? false : Boolean(config.editor.largeFileOptimizations));\n }\n let bracketPairColorizationOptions = EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;\n if (((_a = config.editor) === null || _a === void 0 ? void 0 : _a.bracketPairColorization) && typeof config.editor.bracketPairColorization === 'object') {\n bracketPairColorizationOptions = {\n enabled: !!config.editor.bracketPairColorization.enabled,\n independentColorPoolPerBracketType: !!config.editor.bracketPairColorization.independentColorPoolPerBracketType\n };\n }\n return {\n isForSimpleWidget: isForSimpleWidget,\n tabSize: tabSize,\n indentSize: indentSize,\n insertSpaces: insertSpaces,\n detectIndentation: detectIndentation,\n defaultEOL: newDefaultEOL,\n trimAutoWhitespace: trimAutoWhitespace,\n largeFileOptimizations: largeFileOptimizations,\n bracketPairColorizationOptions\n };\n }\n _getEOL(resource, language) {\n if (resource) {\n return this._resourcePropertiesService.getEOL(resource, language);\n }\n const eol = this._configurationService.getValue('files.eol', { overrideIdentifier: language });\n if (eol && typeof eol === 'string' && eol !== 'auto') {\n return eol;\n }\n return platform.OS === 3 /* platform.OperatingSystem.Linux */ || platform.OS === 2 /* platform.OperatingSystem.Macintosh */ ? '\\n' : '\\r\\n';\n }\n _shouldRestoreUndoStack() {\n const result = this._configurationService.getValue('files.restoreUndoStack');\n if (typeof result === 'boolean') {\n return result;\n }\n return true;\n }\n getCreationOptions(languageIdOrSelection, resource, isForSimpleWidget) {\n const language = (typeof languageIdOrSelection === 'string' ? languageIdOrSelection : languageIdOrSelection.languageId);\n let creationOptions = this._modelCreationOptionsByLanguageAndResource[language + resource];\n if (!creationOptions) {\n const editor = this._configurationService.getValue('editor', { overrideIdentifier: language, resource });\n const eol = this._getEOL(resource, language);\n creationOptions = ModelService_1._readModelOptions({ editor, eol }, isForSimpleWidget);\n this._modelCreationOptionsByLanguageAndResource[language + resource] = creationOptions;\n }\n return creationOptions;\n }\n _updateModelOptions(e) {\n const oldOptionsByLanguageAndResource = this._modelCreationOptionsByLanguageAndResource;\n this._modelCreationOptionsByLanguageAndResource = Object.create(null);\n // Update options on all models\n const keys = Object.keys(this._models);\n for (let i = 0, len = keys.length; i < len; i++) {\n const modelId = keys[i];\n const modelData = this._models[modelId];\n const language = modelData.model.getLanguageId();\n const uri = modelData.model.uri;\n if (e && !e.affectsConfiguration('editor', { overrideIdentifier: language, resource: uri }) && !e.affectsConfiguration('files.eol', { overrideIdentifier: language, resource: uri })) {\n continue; // perf: skip if this model is not affected by configuration change\n }\n const oldOptions = oldOptionsByLanguageAndResource[language + uri];\n const newOptions = this.getCreationOptions(language, uri, modelData.model.isForSimpleWidget);\n ModelService_1._setModelOptionsForModel(modelData.model, newOptions, oldOptions);\n }\n }\n static _setModelOptionsForModel(model, newOptions, currentOptions) {\n if (currentOptions && currentOptions.defaultEOL !== newOptions.defaultEOL && model.getLineCount() === 1) {\n model.setEOL(newOptions.defaultEOL === 1 /* DefaultEndOfLine.LF */ ? 0 /* EndOfLineSequence.LF */ : 1 /* EndOfLineSequence.CRLF */);\n }\n if (currentOptions\n && (currentOptions.detectIndentation === newOptions.detectIndentation)\n && (currentOptions.insertSpaces === newOptions.insertSpaces)\n && (currentOptions.tabSize === newOptions.tabSize)\n && (currentOptions.indentSize === newOptions.indentSize)\n && (currentOptions.trimAutoWhitespace === newOptions.trimAutoWhitespace)\n && equals(currentOptions.bracketPairColorizationOptions, newOptions.bracketPairColorizationOptions)) {\n // Same indent opts, no need to touch the model\n return;\n }\n if (newOptions.detectIndentation) {\n model.detectIndentation(newOptions.insertSpaces, newOptions.tabSize);\n model.updateOptions({\n trimAutoWhitespace: newOptions.trimAutoWhitespace,\n bracketColorizationOptions: newOptions.bracketPairColorizationOptions\n });\n }\n else {\n model.updateOptions({\n insertSpaces: newOptions.insertSpaces,\n tabSize: newOptions.tabSize,\n indentSize: newOptions.indentSize,\n trimAutoWhitespace: newOptions.trimAutoWhitespace,\n bracketColorizationOptions: newOptions.bracketPairColorizationOptions\n });\n }\n }\n // --- begin IModelService\n _insertDisposedModel(disposedModelData) {\n this._disposedModels.set(MODEL_ID(disposedModelData.uri), disposedModelData);\n this._disposedModelsHeapSize += disposedModelData.heapSize;\n }\n _removeDisposedModel(resource) {\n const disposedModelData = this._disposedModels.get(MODEL_ID(resource));\n if (disposedModelData) {\n this._disposedModelsHeapSize -= disposedModelData.heapSize;\n }\n this._disposedModels.delete(MODEL_ID(resource));\n return disposedModelData;\n }\n _ensureDisposedModelsHeapSize(maxModelsHeapSize) {\n if (this._disposedModelsHeapSize > maxModelsHeapSize) {\n // we must remove some old undo stack elements to free up some memory\n const disposedModels = [];\n this._disposedModels.forEach(entry => {\n if (!entry.sharesUndoRedoStack) {\n disposedModels.push(entry);\n }\n });\n disposedModels.sort((a, b) => a.time - b.time);\n while (disposedModels.length > 0 && this._disposedModelsHeapSize > maxModelsHeapSize) {\n const disposedModel = disposedModels.shift();\n this._removeDisposedModel(disposedModel.uri);\n if (disposedModel.initialUndoRedoSnapshot !== null) {\n this._undoRedoService.restoreSnapshot(disposedModel.initialUndoRedoSnapshot);\n }\n }\n }\n }\n _createModelData(value, languageIdOrSelection, resource, isForSimpleWidget) {\n // create & save the model\n const options = this.getCreationOptions(languageIdOrSelection, resource, isForSimpleWidget);\n const model = new TextModel(value, languageIdOrSelection, options, resource, this._undoRedoService, this._languageService, this._languageConfigurationService);\n if (resource && this._disposedModels.has(MODEL_ID(resource))) {\n const disposedModelData = this._removeDisposedModel(resource);\n const elements = this._undoRedoService.getElements(resource);\n const sha1Computer = this._getSHA1Computer();\n const sha1IsEqual = (sha1Computer.canComputeSHA1(model)\n ? sha1Computer.computeSHA1(model) === disposedModelData.sha1\n : false);\n if (sha1IsEqual || disposedModelData.sharesUndoRedoStack) {\n for (const element of elements.past) {\n if (isEditStackElement(element) && element.matchesResource(resource)) {\n element.setModel(model);\n }\n }\n for (const element of elements.future) {\n if (isEditStackElement(element) && element.matchesResource(resource)) {\n element.setModel(model);\n }\n }\n this._undoRedoService.setElementsValidFlag(resource, true, (element) => (isEditStackElement(element) && element.matchesResource(resource)));\n if (sha1IsEqual) {\n model._overwriteVersionId(disposedModelData.versionId);\n model._overwriteAlternativeVersionId(disposedModelData.alternativeVersionId);\n model._overwriteInitialUndoRedoSnapshot(disposedModelData.initialUndoRedoSnapshot);\n }\n }\n else {\n if (disposedModelData.initialUndoRedoSnapshot !== null) {\n this._undoRedoService.restoreSnapshot(disposedModelData.initialUndoRedoSnapshot);\n }\n }\n }\n const modelId = MODEL_ID(model.uri);\n if (this._models[modelId]) {\n // There already exists a model with this id => this is a programmer error\n throw new Error('ModelService: Cannot add model because it already exists!');\n }\n const modelData = new ModelData(model, (model) => this._onWillDispose(model), (model, e) => this._onDidChangeLanguage(model, e));\n this._models[modelId] = modelData;\n return modelData;\n }\n createModel(value, languageSelection, resource, isForSimpleWidget = false) {\n let modelData;\n if (languageSelection) {\n modelData = this._createModelData(value, languageSelection, resource, isForSimpleWidget);\n }\n else {\n modelData = this._createModelData(value, PLAINTEXT_LANGUAGE_ID, resource, isForSimpleWidget);\n }\n this._onModelAdded.fire(modelData.model);\n return modelData.model;\n }\n getModels() {\n const ret = [];\n const keys = Object.keys(this._models);\n for (let i = 0, len = keys.length; i < len; i++) {\n const modelId = keys[i];\n ret.push(this._models[modelId].model);\n }\n return ret;\n }\n getModel(resource) {\n const modelId = MODEL_ID(resource);\n const modelData = this._models[modelId];\n if (!modelData) {\n return null;\n }\n return modelData.model;\n }\n // --- end IModelService\n _schemaShouldMaintainUndoRedoElements(resource) {\n return (resource.scheme === Schemas.file\n || resource.scheme === Schemas.vscodeRemote\n || resource.scheme === Schemas.vscodeUserData\n || resource.scheme === Schemas.vscodeNotebookCell\n || resource.scheme === 'fake-fs' // for tests\n );\n }\n _onWillDispose(model) {\n const modelId = MODEL_ID(model.uri);\n const modelData = this._models[modelId];\n const sharesUndoRedoStack = (this._undoRedoService.getUriComparisonKey(model.uri) !== model.uri.toString());\n let maintainUndoRedoStack = false;\n let heapSize = 0;\n if (sharesUndoRedoStack || (this._shouldRestoreUndoStack() && this._schemaShouldMaintainUndoRedoElements(model.uri))) {\n const elements = this._undoRedoService.getElements(model.uri);\n if (elements.past.length > 0 || elements.future.length > 0) {\n for (const element of elements.past) {\n if (isEditStackElement(element) && element.matchesResource(model.uri)) {\n maintainUndoRedoStack = true;\n heapSize += element.heapSize(model.uri);\n element.setModel(model.uri); // remove reference from text buffer instance\n }\n }\n for (const element of elements.future) {\n if (isEditStackElement(element) && element.matchesResource(model.uri)) {\n maintainUndoRedoStack = true;\n heapSize += element.heapSize(model.uri);\n element.setModel(model.uri); // remove reference from text buffer instance\n }\n }\n }\n }\n const maxMemory = ModelService_1.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;\n const sha1Computer = this._getSHA1Computer();\n if (!maintainUndoRedoStack) {\n if (!sharesUndoRedoStack) {\n const initialUndoRedoSnapshot = modelData.model.getInitialUndoRedoSnapshot();\n if (initialUndoRedoSnapshot !== null) {\n this._undoRedoService.restoreSnapshot(initialUndoRedoSnapshot);\n }\n }\n }\n else if (!sharesUndoRedoStack && (heapSize > maxMemory || !sha1Computer.canComputeSHA1(model))) {\n // the undo stack for this file would never fit in the configured memory or the file is very large, so don't bother with it.\n const initialUndoRedoSnapshot = modelData.model.getInitialUndoRedoSnapshot();\n if (initialUndoRedoSnapshot !== null) {\n this._undoRedoService.restoreSnapshot(initialUndoRedoSnapshot);\n }\n }\n else {\n this._ensureDisposedModelsHeapSize(maxMemory - heapSize);\n // We only invalidate the elements, but they remain in the undo-redo service.\n this._undoRedoService.setElementsValidFlag(model.uri, false, (element) => (isEditStackElement(element) && element.matchesResource(model.uri)));\n this._insertDisposedModel(new DisposedModelInfo(model.uri, modelData.model.getInitialUndoRedoSnapshot(), Date.now(), sharesUndoRedoStack, heapSize, sha1Computer.computeSHA1(model), model.getVersionId(), model.getAlternativeVersionId()));\n }\n delete this._models[modelId];\n modelData.dispose();\n // clean up cache\n delete this._modelCreationOptionsByLanguageAndResource[model.getLanguageId() + model.uri];\n this._onModelRemoved.fire(model);\n }\n _onDidChangeLanguage(model, e) {\n const oldLanguageId = e.oldLanguage;\n const newLanguageId = model.getLanguageId();\n const oldOptions = this.getCreationOptions(oldLanguageId, model.uri, model.isForSimpleWidget);\n const newOptions = this.getCreationOptions(newLanguageId, model.uri, model.isForSimpleWidget);\n ModelService_1._setModelOptionsForModel(model, newOptions, oldOptions);\n this._onModelModeChanged.fire({ model, oldLanguageId: oldLanguageId });\n }\n _getSHA1Computer() {\n return new DefaultModelSHA1Computer();\n }\n};\nModelService.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK = 20 * 1024 * 1024;\nModelService = ModelService_1 = __decorate([\n __param(0, IConfigurationService),\n __param(1, ITextResourcePropertiesService),\n __param(2, IUndoRedoService),\n __param(3, ILanguageService),\n __param(4, ILanguageConfigurationService)\n], ModelService);\nexport { ModelService };\nexport class DefaultModelSHA1Computer {\n canComputeSHA1(model) {\n return (model.getValueLength() <= DefaultModelSHA1Computer.MAX_MODEL_SIZE);\n }\n computeSHA1(model) {\n // compute the sha1\n const shaComputer = new StringSHA1();\n const snapshot = model.createSnapshot();\n let text;\n while ((text = snapshot.read())) {\n shaComputer.update(text);\n }\n return shaComputer.digest();\n }\n}\nDefaultModelSHA1Computer.MAX_MODEL_SIZE = 10 * 1024 * 1024; // takes 200ms to compute a sha1 on a 10MB model on a new machine\n","import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ITextModelService = createDecorator('textModelService');\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 { VSBuffer } from '../../../base/common/buffer.js';\nimport * as platform from '../../../base/common/platform.js';\nfunction reverseEndianness(arr) {\n for (let i = 0, len = arr.length; i < len; i += 4) {\n // flip bytes 0<->3 and 1<->2\n const b0 = arr[i + 0];\n const b1 = arr[i + 1];\n const b2 = arr[i + 2];\n const b3 = arr[i + 3];\n arr[i + 0] = b3;\n arr[i + 1] = b2;\n arr[i + 2] = b1;\n arr[i + 3] = b0;\n }\n}\nfunction toLittleEndianBuffer(arr) {\n const uint8Arr = new Uint8Array(arr.buffer, arr.byteOffset, arr.length * 4);\n if (!platform.isLittleEndian()) {\n // the byte order must be changed\n reverseEndianness(uint8Arr);\n }\n return VSBuffer.wrap(uint8Arr);\n}\nexport function encodeSemanticTokensDto(semanticTokens) {\n const dest = new Uint32Array(encodeSemanticTokensDtoSize(semanticTokens));\n let offset = 0;\n dest[offset++] = semanticTokens.id;\n if (semanticTokens.type === 'full') {\n dest[offset++] = 1 /* EncodedSemanticTokensType.Full */;\n dest[offset++] = semanticTokens.data.length;\n dest.set(semanticTokens.data, offset);\n offset += semanticTokens.data.length;\n }\n else {\n dest[offset++] = 2 /* EncodedSemanticTokensType.Delta */;\n dest[offset++] = semanticTokens.deltas.length;\n for (const delta of semanticTokens.deltas) {\n dest[offset++] = delta.start;\n dest[offset++] = delta.deleteCount;\n if (delta.data) {\n dest[offset++] = delta.data.length;\n dest.set(delta.data, offset);\n offset += delta.data.length;\n }\n else {\n dest[offset++] = 0;\n }\n }\n }\n return toLittleEndianBuffer(dest);\n}\nfunction encodeSemanticTokensDtoSize(semanticTokens) {\n let result = 0;\n result += (+1 // id\n + 1 // type\n );\n if (semanticTokens.type === 'full') {\n result += (+1 // data length\n + semanticTokens.data.length);\n }\n else {\n result += (+1 // delta count\n );\n result += (+1 // start\n + 1 // deleteCount\n + 1 // data length\n ) * semanticTokens.deltas.length;\n for (const delta of semanticTokens.deltas) {\n if (delta.data) {\n result += delta.data.length;\n }\n }\n }\n return result;\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 { TokenMetadata } from '../encodedTokenAttributes.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nimport { ILogService, LogLevel } from '../../../platform/log/common/log.js';\nimport { SparseMultilineTokens } from '../tokens/sparseMultilineTokens.js';\nimport { ILanguageService } from '../languages/language.js';\nlet SemanticTokensProviderStyling = class SemanticTokensProviderStyling {\n constructor(_legend, _themeService, _languageService, _logService) {\n this._legend = _legend;\n this._themeService = _themeService;\n this._languageService = _languageService;\n this._logService = _logService;\n this._hasWarnedOverlappingTokens = false;\n this._hasWarnedInvalidLengthTokens = false;\n this._hasWarnedInvalidEditStart = false;\n this._hashTable = new HashTable();\n }\n getMetadata(tokenTypeIndex, tokenModifierSet, languageId) {\n const encodedLanguageId = this._languageService.languageIdCodec.encodeLanguageId(languageId);\n const entry = this._hashTable.get(tokenTypeIndex, tokenModifierSet, encodedLanguageId);\n let metadata;\n if (entry) {\n metadata = entry.metadata;\n if (this._logService.getLevel() === LogLevel.Trace) {\n this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${tokenTypeIndex} / ${tokenModifierSet}: foreground ${TokenMetadata.getForeground(metadata)}, fontStyle ${TokenMetadata.getFontStyle(metadata).toString(2)}`);\n }\n }\n else {\n let tokenType = this._legend.tokenTypes[tokenTypeIndex];\n const tokenModifiers = [];\n if (tokenType) {\n let modifierSet = tokenModifierSet;\n for (let modifierIndex = 0; modifierSet > 0 && modifierIndex < this._legend.tokenModifiers.length; modifierIndex++) {\n if (modifierSet & 1) {\n tokenModifiers.push(this._legend.tokenModifiers[modifierIndex]);\n }\n modifierSet = modifierSet >> 1;\n }\n if (modifierSet > 0 && this._logService.getLevel() === LogLevel.Trace) {\n this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${tokenModifierSet.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`);\n tokenModifiers.push('not-in-legend');\n }\n const tokenStyle = this._themeService.getColorTheme().getTokenStyleMetadata(tokenType, tokenModifiers, languageId);\n if (typeof tokenStyle === 'undefined') {\n metadata = 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */;\n }\n else {\n metadata = 0;\n if (typeof tokenStyle.italic !== 'undefined') {\n const italicBit = (tokenStyle.italic ? 1 /* FontStyle.Italic */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n metadata |= italicBit | 1 /* MetadataConsts.SEMANTIC_USE_ITALIC */;\n }\n if (typeof tokenStyle.bold !== 'undefined') {\n const boldBit = (tokenStyle.bold ? 2 /* FontStyle.Bold */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n metadata |= boldBit | 2 /* MetadataConsts.SEMANTIC_USE_BOLD */;\n }\n if (typeof tokenStyle.underline !== 'undefined') {\n const underlineBit = (tokenStyle.underline ? 4 /* FontStyle.Underline */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n metadata |= underlineBit | 4 /* MetadataConsts.SEMANTIC_USE_UNDERLINE */;\n }\n if (typeof tokenStyle.strikethrough !== 'undefined') {\n const strikethroughBit = (tokenStyle.strikethrough ? 8 /* FontStyle.Strikethrough */ : 0) << 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n metadata |= strikethroughBit | 8 /* MetadataConsts.SEMANTIC_USE_STRIKETHROUGH */;\n }\n if (tokenStyle.foreground) {\n const foregroundBits = (tokenStyle.foreground) << 15 /* MetadataConsts.FOREGROUND_OFFSET */;\n metadata |= foregroundBits | 16 /* MetadataConsts.SEMANTIC_USE_FOREGROUND */;\n }\n if (metadata === 0) {\n // Nothing!\n metadata = 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */;\n }\n }\n }\n else {\n if (this._logService.getLevel() === LogLevel.Trace) {\n this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${tokenTypeIndex} for legend: ${JSON.stringify(this._legend.tokenTypes)}`);\n }\n metadata = 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */;\n tokenType = 'not-in-legend';\n }\n this._hashTable.add(tokenTypeIndex, tokenModifierSet, encodedLanguageId, metadata);\n if (this._logService.getLevel() === LogLevel.Trace) {\n this._logService.trace(`SemanticTokensProviderStyling ${tokenTypeIndex} (${tokenType}) / ${tokenModifierSet} (${tokenModifiers.join(' ')}): foreground ${TokenMetadata.getForeground(metadata)}, fontStyle ${TokenMetadata.getFontStyle(metadata).toString(2)}`);\n }\n }\n return metadata;\n }\n warnOverlappingSemanticTokens(lineNumber, startColumn) {\n if (!this._hasWarnedOverlappingTokens) {\n this._hasWarnedOverlappingTokens = true;\n this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${lineNumber}, column ${startColumn}`);\n }\n }\n warnInvalidLengthSemanticTokens(lineNumber, startColumn) {\n if (!this._hasWarnedInvalidLengthTokens) {\n this._hasWarnedInvalidLengthTokens = true;\n this._logService.warn(`Semantic token with invalid length detected at lineNumber ${lineNumber}, column ${startColumn}`);\n }\n }\n warnInvalidEditStart(previousResultId, resultId, editIndex, editStart, maxExpectedStart) {\n if (!this._hasWarnedInvalidEditStart) {\n this._hasWarnedInvalidEditStart = true;\n this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${previousResultId}, resultId: ${resultId}) at edit #${editIndex}: The provided start offset ${editStart} is outside the previous data (length ${maxExpectedStart}).`);\n }\n }\n};\nSemanticTokensProviderStyling = __decorate([\n __param(1, IThemeService),\n __param(2, ILanguageService),\n __param(3, ILogService)\n], SemanticTokensProviderStyling);\nexport { SemanticTokensProviderStyling };\nexport function toMultilineTokens2(tokens, styling, languageId) {\n const srcData = tokens.data;\n const tokenCount = (tokens.data.length / 5) | 0;\n const tokensPerArea = Math.max(Math.ceil(tokenCount / 1024 /* SemanticColoringConstants.DesiredMaxAreas */), 400 /* SemanticColoringConstants.DesiredTokensPerArea */);\n const result = [];\n let tokenIndex = 0;\n let lastLineNumber = 1;\n let lastStartCharacter = 0;\n while (tokenIndex < tokenCount) {\n const tokenStartIndex = tokenIndex;\n let tokenEndIndex = Math.min(tokenStartIndex + tokensPerArea, tokenCount);\n // Keep tokens on the same line in the same area...\n if (tokenEndIndex < tokenCount) {\n let smallTokenEndIndex = tokenEndIndex;\n while (smallTokenEndIndex - 1 > tokenStartIndex && srcData[5 * smallTokenEndIndex] === 0) {\n smallTokenEndIndex--;\n }\n if (smallTokenEndIndex - 1 === tokenStartIndex) {\n // there are so many tokens on this line that our area would be empty, we must now go right\n let bigTokenEndIndex = tokenEndIndex;\n while (bigTokenEndIndex + 1 < tokenCount && srcData[5 * bigTokenEndIndex] === 0) {\n bigTokenEndIndex++;\n }\n tokenEndIndex = bigTokenEndIndex;\n }\n else {\n tokenEndIndex = smallTokenEndIndex;\n }\n }\n let destData = new Uint32Array((tokenEndIndex - tokenStartIndex) * 4);\n let destOffset = 0;\n let areaLine = 0;\n let prevLineNumber = 0;\n let prevEndCharacter = 0;\n while (tokenIndex < tokenEndIndex) {\n const srcOffset = 5 * tokenIndex;\n const deltaLine = srcData[srcOffset];\n const deltaCharacter = srcData[srcOffset + 1];\n // Casting both `lineNumber`, `startCharacter` and `endCharacter` here to uint32 using `|0`\n // to validate below with the actual values that will be inserted in the Uint32Array result\n const lineNumber = (lastLineNumber + deltaLine) | 0;\n const startCharacter = (deltaLine === 0 ? (lastStartCharacter + deltaCharacter) | 0 : deltaCharacter);\n const length = srcData[srcOffset + 2];\n const endCharacter = (startCharacter + length) | 0;\n const tokenTypeIndex = srcData[srcOffset + 3];\n const tokenModifierSet = srcData[srcOffset + 4];\n if (endCharacter <= startCharacter) {\n // this token is invalid (most likely a negative length casted to uint32)\n styling.warnInvalidLengthSemanticTokens(lineNumber, startCharacter + 1);\n }\n else if (prevLineNumber === lineNumber && prevEndCharacter > startCharacter) {\n // this token overlaps with the previous token\n styling.warnOverlappingSemanticTokens(lineNumber, startCharacter + 1);\n }\n else {\n const metadata = styling.getMetadata(tokenTypeIndex, tokenModifierSet, languageId);\n if (metadata !== 2147483647 /* SemanticTokensProviderStylingConstants.NO_STYLING */) {\n if (areaLine === 0) {\n areaLine = lineNumber;\n }\n destData[destOffset] = lineNumber - areaLine;\n destData[destOffset + 1] = startCharacter;\n destData[destOffset + 2] = endCharacter;\n destData[destOffset + 3] = metadata;\n destOffset += 4;\n prevLineNumber = lineNumber;\n prevEndCharacter = endCharacter;\n }\n }\n lastLineNumber = lineNumber;\n lastStartCharacter = startCharacter;\n tokenIndex++;\n }\n if (destOffset !== destData.length) {\n destData = destData.subarray(0, destOffset);\n }\n const tokens = SparseMultilineTokens.create(areaLine, destData);\n result.push(tokens);\n }\n return result;\n}\nclass HashTableEntry {\n constructor(tokenTypeIndex, tokenModifierSet, languageId, metadata) {\n this.tokenTypeIndex = tokenTypeIndex;\n this.tokenModifierSet = tokenModifierSet;\n this.languageId = languageId;\n this.metadata = metadata;\n this.next = null;\n }\n}\nclass HashTable {\n constructor() {\n this._elementsCount = 0;\n this._currentLengthIndex = 0;\n this._currentLength = HashTable._SIZES[this._currentLengthIndex];\n this._growCount = Math.round(this._currentLengthIndex + 1 < HashTable._SIZES.length ? 2 / 3 * this._currentLength : 0);\n this._elements = [];\n HashTable._nullOutEntries(this._elements, this._currentLength);\n }\n static _nullOutEntries(entries, length) {\n for (let i = 0; i < length; i++) {\n entries[i] = null;\n }\n }\n _hash2(n1, n2) {\n return (((n1 << 5) - n1) + n2) | 0; // n1 * 31 + n2, keep as int32\n }\n _hashFunc(tokenTypeIndex, tokenModifierSet, languageId) {\n return this._hash2(this._hash2(tokenTypeIndex, tokenModifierSet), languageId) % this._currentLength;\n }\n get(tokenTypeIndex, tokenModifierSet, languageId) {\n const hash = this._hashFunc(tokenTypeIndex, tokenModifierSet, languageId);\n let p = this._elements[hash];\n while (p) {\n if (p.tokenTypeIndex === tokenTypeIndex && p.tokenModifierSet === tokenModifierSet && p.languageId === languageId) {\n return p;\n }\n p = p.next;\n }\n return null;\n }\n add(tokenTypeIndex, tokenModifierSet, languageId, metadata) {\n this._elementsCount++;\n if (this._growCount !== 0 && this._elementsCount >= this._growCount) {\n // expand!\n const oldElements = this._elements;\n this._currentLengthIndex++;\n this._currentLength = HashTable._SIZES[this._currentLengthIndex];\n this._growCount = Math.round(this._currentLengthIndex + 1 < HashTable._SIZES.length ? 2 / 3 * this._currentLength : 0);\n this._elements = [];\n HashTable._nullOutEntries(this._elements, this._currentLength);\n for (const first of oldElements) {\n let p = first;\n while (p) {\n const oldNext = p.next;\n p.next = null;\n this._add(p);\n p = oldNext;\n }\n }\n }\n this._add(new HashTableEntry(tokenTypeIndex, tokenModifierSet, languageId, metadata));\n }\n _add(element) {\n const hash = this._hashFunc(element.tokenTypeIndex, element.tokenModifierSet, element.languageId);\n element.next = this._elements[hash];\n this._elements[hash] = element;\n }\n}\nHashTable._SIZES = [3, 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143];\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 ISemanticTokensStylingService = createDecorator('semanticTokensStylingService');\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 { Disposable } from '../../../base/common/lifecycle.js';\nimport { ILanguageService } from '../languages/language.js';\nimport { IThemeService } from '../../../platform/theme/common/themeService.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nimport { SemanticTokensProviderStyling } from './semanticTokensProviderStyling.js';\nimport { ISemanticTokensStylingService } from './semanticTokensStyling.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nlet SemanticTokensStylingService = class SemanticTokensStylingService extends Disposable {\n constructor(_themeService, _logService, _languageService) {\n super();\n this._themeService = _themeService;\n this._logService = _logService;\n this._languageService = _languageService;\n this._caches = new WeakMap();\n this._register(this._themeService.onDidColorThemeChange(() => {\n this._caches = new WeakMap();\n }));\n }\n getStyling(provider) {\n if (!this._caches.has(provider)) {\n this._caches.set(provider, new SemanticTokensProviderStyling(provider.getLegend(), this._themeService, this._languageService, this._logService));\n }\n return this._caches.get(provider);\n }\n};\nSemanticTokensStylingService = __decorate([\n __param(0, IThemeService),\n __param(1, ILogService),\n __param(2, ILanguageService)\n], SemanticTokensStylingService);\nexport { SemanticTokensStylingService };\nregisterSingleton(ISemanticTokensStylingService, SemanticTokensStylingService, 1 /* InstantiationType.Delayed */);\n","import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ITextResourceConfigurationService = createDecorator('textResourceConfigurationService');\nexport const ITextResourcePropertiesService = createDecorator('textResourcePropertiesService');\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 class TreeViewsDnDService {\n constructor() {\n this._dragOperations = new Map();\n }\n removeDragOperationTransfer(uuid) {\n if ((uuid && this._dragOperations.has(uuid))) {\n const operation = this._dragOperations.get(uuid);\n this._dragOperations.delete(uuid);\n return operation;\n }\n return undefined;\n }\n}\nexport class DraggedTreeItemsIdentifier {\n constructor(identifier) {\n this.identifier = identifier;\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 { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { TreeViewsDnDService } from './treeViewsDnd.js';\nexport const ITreeViewsDnDService = createDecorator('treeViewsDndService');\nregisterSingleton(ITreeViewsDnDService, TreeViewsDnDService, 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 *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../core/range.js';\nimport { Searcher } from '../model/textModelSearch.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { assertNever } from '../../../base/common/assert.js';\nimport { DEFAULT_WORD_REGEXP, getWordAtText } from '../core/wordHelper.js';\nexport class UnicodeTextModelHighlighter {\n static computeUnicodeHighlights(model, options, range) {\n const startLine = range ? range.startLineNumber : 1;\n const endLine = range ? range.endLineNumber : model.getLineCount();\n const codePointHighlighter = new CodePointHighlighter(options);\n const candidates = codePointHighlighter.getCandidateCodePoints();\n let regex;\n if (candidates === 'allNonBasicAscii') {\n regex = new RegExp('[^\\\\t\\\\n\\\\r\\\\x20-\\\\x7E]', 'g');\n }\n else {\n regex = new RegExp(`${buildRegExpCharClassExpr(Array.from(candidates))}`, 'g');\n }\n const searcher = new Searcher(null, regex);\n const ranges = [];\n let hasMore = false;\n let m;\n let ambiguousCharacterCount = 0;\n let invisibleCharacterCount = 0;\n let nonBasicAsciiCharacterCount = 0;\n forLoop: for (let lineNumber = startLine, lineCount = endLine; lineNumber <= lineCount; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n const lineLength = lineContent.length;\n // Reset regex to search from the beginning\n searcher.reset(0);\n do {\n m = searcher.next(lineContent);\n if (m) {\n let startIndex = m.index;\n let endIndex = m.index + m[0].length;\n // Extend range to entire code point\n if (startIndex > 0) {\n const charCodeBefore = lineContent.charCodeAt(startIndex - 1);\n if (strings.isHighSurrogate(charCodeBefore)) {\n startIndex--;\n }\n }\n if (endIndex + 1 < lineLength) {\n const charCodeBefore = lineContent.charCodeAt(endIndex - 1);\n if (strings.isHighSurrogate(charCodeBefore)) {\n endIndex++;\n }\n }\n const str = lineContent.substring(startIndex, endIndex);\n let word = getWordAtText(startIndex + 1, DEFAULT_WORD_REGEXP, lineContent, 0);\n if (word && word.endColumn <= startIndex + 1) {\n // The word does not include the problematic character, ignore the word\n word = null;\n }\n const highlightReason = codePointHighlighter.shouldHighlightNonBasicASCII(str, word ? word.word : null);\n if (highlightReason !== 0 /* SimpleHighlightReason.None */) {\n if (highlightReason === 3 /* SimpleHighlightReason.Ambiguous */) {\n ambiguousCharacterCount++;\n }\n else if (highlightReason === 2 /* SimpleHighlightReason.Invisible */) {\n invisibleCharacterCount++;\n }\n else if (highlightReason === 1 /* SimpleHighlightReason.NonBasicASCII */) {\n nonBasicAsciiCharacterCount++;\n }\n else {\n assertNever(highlightReason);\n }\n const MAX_RESULT_LENGTH = 1000;\n if (ranges.length >= MAX_RESULT_LENGTH) {\n hasMore = true;\n break forLoop;\n }\n ranges.push(new Range(lineNumber, startIndex + 1, lineNumber, endIndex + 1));\n }\n }\n } while (m);\n }\n return {\n ranges,\n hasMore,\n ambiguousCharacterCount,\n invisibleCharacterCount,\n nonBasicAsciiCharacterCount\n };\n }\n static computeUnicodeHighlightReason(char, options) {\n const codePointHighlighter = new CodePointHighlighter(options);\n const reason = codePointHighlighter.shouldHighlightNonBasicASCII(char, null);\n switch (reason) {\n case 0 /* SimpleHighlightReason.None */:\n return null;\n case 2 /* SimpleHighlightReason.Invisible */:\n return { kind: 1 /* UnicodeHighlighterReasonKind.Invisible */ };\n case 3 /* SimpleHighlightReason.Ambiguous */: {\n const codePoint = char.codePointAt(0);\n const primaryConfusable = codePointHighlighter.ambiguousCharacters.getPrimaryConfusable(codePoint);\n const notAmbiguousInLocales = strings.AmbiguousCharacters.getLocales().filter((l) => !strings.AmbiguousCharacters.getInstance(new Set([...options.allowedLocales, l])).isAmbiguous(codePoint));\n return { kind: 0 /* UnicodeHighlighterReasonKind.Ambiguous */, confusableWith: String.fromCodePoint(primaryConfusable), notAmbiguousInLocales };\n }\n case 1 /* SimpleHighlightReason.NonBasicASCII */:\n return { kind: 2 /* UnicodeHighlighterReasonKind.NonBasicAscii */ };\n }\n }\n}\nfunction buildRegExpCharClassExpr(codePoints, flags) {\n const src = `[${strings.escapeRegExpCharacters(codePoints.map((i) => String.fromCodePoint(i)).join(''))}]`;\n return src;\n}\nclass CodePointHighlighter {\n constructor(options) {\n this.options = options;\n this.allowedCodePoints = new Set(options.allowedCodePoints);\n this.ambiguousCharacters = strings.AmbiguousCharacters.getInstance(new Set(options.allowedLocales));\n }\n getCandidateCodePoints() {\n if (this.options.nonBasicASCII) {\n return 'allNonBasicAscii';\n }\n const set = new Set();\n if (this.options.invisibleCharacters) {\n for (const cp of strings.InvisibleCharacters.codePoints) {\n if (!isAllowedInvisibleCharacter(String.fromCodePoint(cp))) {\n set.add(cp);\n }\n }\n }\n if (this.options.ambiguousCharacters) {\n for (const cp of this.ambiguousCharacters.getConfusableCodePoints()) {\n set.add(cp);\n }\n }\n for (const cp of this.allowedCodePoints) {\n set.delete(cp);\n }\n return set;\n }\n shouldHighlightNonBasicASCII(character, wordContext) {\n const codePoint = character.codePointAt(0);\n if (this.allowedCodePoints.has(codePoint)) {\n return 0 /* SimpleHighlightReason.None */;\n }\n if (this.options.nonBasicASCII) {\n return 1 /* SimpleHighlightReason.NonBasicASCII */;\n }\n let hasBasicASCIICharacters = false;\n let hasNonConfusableNonBasicAsciiCharacter = false;\n if (wordContext) {\n for (const char of wordContext) {\n const codePoint = char.codePointAt(0);\n const isBasicASCII = strings.isBasicASCII(char);\n hasBasicASCIICharacters = hasBasicASCIICharacters || isBasicASCII;\n if (!isBasicASCII &&\n !this.ambiguousCharacters.isAmbiguous(codePoint) &&\n !strings.InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n hasNonConfusableNonBasicAsciiCharacter = true;\n }\n }\n }\n if (\n /* Don't allow mixing weird looking characters with ASCII */ !hasBasicASCIICharacters &&\n /* Is there an obviously weird looking character? */ hasNonConfusableNonBasicAsciiCharacter) {\n return 0 /* SimpleHighlightReason.None */;\n }\n if (this.options.invisibleCharacters) {\n // TODO check for emojis\n if (!isAllowedInvisibleCharacter(character) && strings.InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n return 2 /* SimpleHighlightReason.Invisible */;\n }\n }\n if (this.options.ambiguousCharacters) {\n if (this.ambiguousCharacters.isAmbiguous(codePoint)) {\n return 3 /* SimpleHighlightReason.Ambiguous */;\n }\n }\n return 0 /* SimpleHighlightReason.None */;\n }\n}\nfunction isAllowedInvisibleCharacter(character) {\n return character === ' ' || character === '\\n' || character === '\\t';\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// THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY.\nexport var AccessibilitySupport;\n(function (AccessibilitySupport) {\n /**\n * This should be the browser case where it is not known if a screen reader is attached or no.\n */\n AccessibilitySupport[AccessibilitySupport[\"Unknown\"] = 0] = \"Unknown\";\n AccessibilitySupport[AccessibilitySupport[\"Disabled\"] = 1] = \"Disabled\";\n AccessibilitySupport[AccessibilitySupport[\"Enabled\"] = 2] = \"Enabled\";\n})(AccessibilitySupport || (AccessibilitySupport = {}));\nexport var CodeActionTriggerType;\n(function (CodeActionTriggerType) {\n CodeActionTriggerType[CodeActionTriggerType[\"Invoke\"] = 1] = \"Invoke\";\n CodeActionTriggerType[CodeActionTriggerType[\"Auto\"] = 2] = \"Auto\";\n})(CodeActionTriggerType || (CodeActionTriggerType = {}));\nexport var CompletionItemInsertTextRule;\n(function (CompletionItemInsertTextRule) {\n CompletionItemInsertTextRule[CompletionItemInsertTextRule[\"None\"] = 0] = \"None\";\n /**\n * Adjust whitespace/indentation of multiline insert texts to\n * match the current line indentation.\n */\n CompletionItemInsertTextRule[CompletionItemInsertTextRule[\"KeepWhitespace\"] = 1] = \"KeepWhitespace\";\n /**\n * `insertText` is a snippet.\n */\n CompletionItemInsertTextRule[CompletionItemInsertTextRule[\"InsertAsSnippet\"] = 4] = \"InsertAsSnippet\";\n})(CompletionItemInsertTextRule || (CompletionItemInsertTextRule = {}));\nexport var CompletionItemKind;\n(function (CompletionItemKind) {\n CompletionItemKind[CompletionItemKind[\"Method\"] = 0] = \"Method\";\n CompletionItemKind[CompletionItemKind[\"Function\"] = 1] = \"Function\";\n CompletionItemKind[CompletionItemKind[\"Constructor\"] = 2] = \"Constructor\";\n CompletionItemKind[CompletionItemKind[\"Field\"] = 3] = \"Field\";\n CompletionItemKind[CompletionItemKind[\"Variable\"] = 4] = \"Variable\";\n CompletionItemKind[CompletionItemKind[\"Class\"] = 5] = \"Class\";\n CompletionItemKind[CompletionItemKind[\"Struct\"] = 6] = \"Struct\";\n CompletionItemKind[CompletionItemKind[\"Interface\"] = 7] = \"Interface\";\n CompletionItemKind[CompletionItemKind[\"Module\"] = 8] = \"Module\";\n CompletionItemKind[CompletionItemKind[\"Property\"] = 9] = \"Property\";\n CompletionItemKind[CompletionItemKind[\"Event\"] = 10] = \"Event\";\n CompletionItemKind[CompletionItemKind[\"Operator\"] = 11] = \"Operator\";\n CompletionItemKind[CompletionItemKind[\"Unit\"] = 12] = \"Unit\";\n CompletionItemKind[CompletionItemKind[\"Value\"] = 13] = \"Value\";\n CompletionItemKind[CompletionItemKind[\"Constant\"] = 14] = \"Constant\";\n CompletionItemKind[CompletionItemKind[\"Enum\"] = 15] = \"Enum\";\n CompletionItemKind[CompletionItemKind[\"EnumMember\"] = 16] = \"EnumMember\";\n CompletionItemKind[CompletionItemKind[\"Keyword\"] = 17] = \"Keyword\";\n CompletionItemKind[CompletionItemKind[\"Text\"] = 18] = \"Text\";\n CompletionItemKind[CompletionItemKind[\"Color\"] = 19] = \"Color\";\n CompletionItemKind[CompletionItemKind[\"File\"] = 20] = \"File\";\n CompletionItemKind[CompletionItemKind[\"Reference\"] = 21] = \"Reference\";\n CompletionItemKind[CompletionItemKind[\"Customcolor\"] = 22] = \"Customcolor\";\n CompletionItemKind[CompletionItemKind[\"Folder\"] = 23] = \"Folder\";\n CompletionItemKind[CompletionItemKind[\"TypeParameter\"] = 24] = \"TypeParameter\";\n CompletionItemKind[CompletionItemKind[\"User\"] = 25] = \"User\";\n CompletionItemKind[CompletionItemKind[\"Issue\"] = 26] = \"Issue\";\n CompletionItemKind[CompletionItemKind[\"Snippet\"] = 27] = \"Snippet\";\n})(CompletionItemKind || (CompletionItemKind = {}));\nexport var CompletionItemTag;\n(function (CompletionItemTag) {\n CompletionItemTag[CompletionItemTag[\"Deprecated\"] = 1] = \"Deprecated\";\n})(CompletionItemTag || (CompletionItemTag = {}));\n/**\n * How a suggest provider was triggered.\n */\nexport var CompletionTriggerKind;\n(function (CompletionTriggerKind) {\n CompletionTriggerKind[CompletionTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n CompletionTriggerKind[CompletionTriggerKind[\"TriggerCharacter\"] = 1] = \"TriggerCharacter\";\n CompletionTriggerKind[CompletionTriggerKind[\"TriggerForIncompleteCompletions\"] = 2] = \"TriggerForIncompleteCompletions\";\n})(CompletionTriggerKind || (CompletionTriggerKind = {}));\n/**\n * A positioning preference for rendering content widgets.\n */\nexport var ContentWidgetPositionPreference;\n(function (ContentWidgetPositionPreference) {\n /**\n * Place the content widget exactly at a position\n */\n ContentWidgetPositionPreference[ContentWidgetPositionPreference[\"EXACT\"] = 0] = \"EXACT\";\n /**\n * Place the content widget above a position\n */\n ContentWidgetPositionPreference[ContentWidgetPositionPreference[\"ABOVE\"] = 1] = \"ABOVE\";\n /**\n * Place the content widget below a position\n */\n ContentWidgetPositionPreference[ContentWidgetPositionPreference[\"BELOW\"] = 2] = \"BELOW\";\n})(ContentWidgetPositionPreference || (ContentWidgetPositionPreference = {}));\n/**\n * Describes the reason the cursor has changed its position.\n */\nexport var CursorChangeReason;\n(function (CursorChangeReason) {\n /**\n * Unknown or not set.\n */\n CursorChangeReason[CursorChangeReason[\"NotSet\"] = 0] = \"NotSet\";\n /**\n * A `model.setValue()` was called.\n */\n CursorChangeReason[CursorChangeReason[\"ContentFlush\"] = 1] = \"ContentFlush\";\n /**\n * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers.\n */\n CursorChangeReason[CursorChangeReason[\"RecoverFromMarkers\"] = 2] = \"RecoverFromMarkers\";\n /**\n * There was an explicit user gesture.\n */\n CursorChangeReason[CursorChangeReason[\"Explicit\"] = 3] = \"Explicit\";\n /**\n * There was a Paste.\n */\n CursorChangeReason[CursorChangeReason[\"Paste\"] = 4] = \"Paste\";\n /**\n * There was an Undo.\n */\n CursorChangeReason[CursorChangeReason[\"Undo\"] = 5] = \"Undo\";\n /**\n * There was a Redo.\n */\n CursorChangeReason[CursorChangeReason[\"Redo\"] = 6] = \"Redo\";\n})(CursorChangeReason || (CursorChangeReason = {}));\n/**\n * The default end of line to use when instantiating models.\n */\nexport var DefaultEndOfLine;\n(function (DefaultEndOfLine) {\n /**\n * Use line feed (\\n) as the end of line character.\n */\n DefaultEndOfLine[DefaultEndOfLine[\"LF\"] = 1] = \"LF\";\n /**\n * Use carriage return and line feed (\\r\\n) as the end of line character.\n */\n DefaultEndOfLine[DefaultEndOfLine[\"CRLF\"] = 2] = \"CRLF\";\n})(DefaultEndOfLine || (DefaultEndOfLine = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Text\"] = 0] = \"Text\";\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Read\"] = 1] = \"Read\";\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Write\"] = 2] = \"Write\";\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * Configuration options for auto indentation in the editor\n */\nexport var EditorAutoIndentStrategy;\n(function (EditorAutoIndentStrategy) {\n EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"None\"] = 0] = \"None\";\n EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Keep\"] = 1] = \"Keep\";\n EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Brackets\"] = 2] = \"Brackets\";\n EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Advanced\"] = 3] = \"Advanced\";\n EditorAutoIndentStrategy[EditorAutoIndentStrategy[\"Full\"] = 4] = \"Full\";\n})(EditorAutoIndentStrategy || (EditorAutoIndentStrategy = {}));\nexport var EditorOption;\n(function (EditorOption) {\n EditorOption[EditorOption[\"acceptSuggestionOnCommitCharacter\"] = 0] = \"acceptSuggestionOnCommitCharacter\";\n EditorOption[EditorOption[\"acceptSuggestionOnEnter\"] = 1] = \"acceptSuggestionOnEnter\";\n EditorOption[EditorOption[\"accessibilitySupport\"] = 2] = \"accessibilitySupport\";\n EditorOption[EditorOption[\"accessibilityPageSize\"] = 3] = \"accessibilityPageSize\";\n EditorOption[EditorOption[\"ariaLabel\"] = 4] = \"ariaLabel\";\n EditorOption[EditorOption[\"ariaRequired\"] = 5] = \"ariaRequired\";\n EditorOption[EditorOption[\"autoClosingBrackets\"] = 6] = \"autoClosingBrackets\";\n EditorOption[EditorOption[\"autoClosingComments\"] = 7] = \"autoClosingComments\";\n EditorOption[EditorOption[\"screenReaderAnnounceInlineSuggestion\"] = 8] = \"screenReaderAnnounceInlineSuggestion\";\n EditorOption[EditorOption[\"autoClosingDelete\"] = 9] = \"autoClosingDelete\";\n EditorOption[EditorOption[\"autoClosingOvertype\"] = 10] = \"autoClosingOvertype\";\n EditorOption[EditorOption[\"autoClosingQuotes\"] = 11] = \"autoClosingQuotes\";\n EditorOption[EditorOption[\"autoIndent\"] = 12] = \"autoIndent\";\n EditorOption[EditorOption[\"automaticLayout\"] = 13] = \"automaticLayout\";\n EditorOption[EditorOption[\"autoSurround\"] = 14] = \"autoSurround\";\n EditorOption[EditorOption[\"bracketPairColorization\"] = 15] = \"bracketPairColorization\";\n EditorOption[EditorOption[\"guides\"] = 16] = \"guides\";\n EditorOption[EditorOption[\"codeLens\"] = 17] = \"codeLens\";\n EditorOption[EditorOption[\"codeLensFontFamily\"] = 18] = \"codeLensFontFamily\";\n EditorOption[EditorOption[\"codeLensFontSize\"] = 19] = \"codeLensFontSize\";\n EditorOption[EditorOption[\"colorDecorators\"] = 20] = \"colorDecorators\";\n EditorOption[EditorOption[\"colorDecoratorsLimit\"] = 21] = \"colorDecoratorsLimit\";\n EditorOption[EditorOption[\"columnSelection\"] = 22] = \"columnSelection\";\n EditorOption[EditorOption[\"comments\"] = 23] = \"comments\";\n EditorOption[EditorOption[\"contextmenu\"] = 24] = \"contextmenu\";\n EditorOption[EditorOption[\"copyWithSyntaxHighlighting\"] = 25] = \"copyWithSyntaxHighlighting\";\n EditorOption[EditorOption[\"cursorBlinking\"] = 26] = \"cursorBlinking\";\n EditorOption[EditorOption[\"cursorSmoothCaretAnimation\"] = 27] = \"cursorSmoothCaretAnimation\";\n EditorOption[EditorOption[\"cursorStyle\"] = 28] = \"cursorStyle\";\n EditorOption[EditorOption[\"cursorSurroundingLines\"] = 29] = \"cursorSurroundingLines\";\n EditorOption[EditorOption[\"cursorSurroundingLinesStyle\"] = 30] = \"cursorSurroundingLinesStyle\";\n EditorOption[EditorOption[\"cursorWidth\"] = 31] = \"cursorWidth\";\n EditorOption[EditorOption[\"disableLayerHinting\"] = 32] = \"disableLayerHinting\";\n EditorOption[EditorOption[\"disableMonospaceOptimizations\"] = 33] = \"disableMonospaceOptimizations\";\n EditorOption[EditorOption[\"domReadOnly\"] = 34] = \"domReadOnly\";\n EditorOption[EditorOption[\"dragAndDrop\"] = 35] = \"dragAndDrop\";\n EditorOption[EditorOption[\"dropIntoEditor\"] = 36] = \"dropIntoEditor\";\n EditorOption[EditorOption[\"emptySelectionClipboard\"] = 37] = \"emptySelectionClipboard\";\n EditorOption[EditorOption[\"experimentalWhitespaceRendering\"] = 38] = \"experimentalWhitespaceRendering\";\n EditorOption[EditorOption[\"extraEditorClassName\"] = 39] = \"extraEditorClassName\";\n EditorOption[EditorOption[\"fastScrollSensitivity\"] = 40] = \"fastScrollSensitivity\";\n EditorOption[EditorOption[\"find\"] = 41] = \"find\";\n EditorOption[EditorOption[\"fixedOverflowWidgets\"] = 42] = \"fixedOverflowWidgets\";\n EditorOption[EditorOption[\"folding\"] = 43] = \"folding\";\n EditorOption[EditorOption[\"foldingStrategy\"] = 44] = \"foldingStrategy\";\n EditorOption[EditorOption[\"foldingHighlight\"] = 45] = \"foldingHighlight\";\n EditorOption[EditorOption[\"foldingImportsByDefault\"] = 46] = \"foldingImportsByDefault\";\n EditorOption[EditorOption[\"foldingMaximumRegions\"] = 47] = \"foldingMaximumRegions\";\n EditorOption[EditorOption[\"unfoldOnClickAfterEndOfLine\"] = 48] = \"unfoldOnClickAfterEndOfLine\";\n EditorOption[EditorOption[\"fontFamily\"] = 49] = \"fontFamily\";\n EditorOption[EditorOption[\"fontInfo\"] = 50] = \"fontInfo\";\n EditorOption[EditorOption[\"fontLigatures\"] = 51] = \"fontLigatures\";\n EditorOption[EditorOption[\"fontSize\"] = 52] = \"fontSize\";\n EditorOption[EditorOption[\"fontWeight\"] = 53] = \"fontWeight\";\n EditorOption[EditorOption[\"fontVariations\"] = 54] = \"fontVariations\";\n EditorOption[EditorOption[\"formatOnPaste\"] = 55] = \"formatOnPaste\";\n EditorOption[EditorOption[\"formatOnType\"] = 56] = \"formatOnType\";\n EditorOption[EditorOption[\"glyphMargin\"] = 57] = \"glyphMargin\";\n EditorOption[EditorOption[\"gotoLocation\"] = 58] = \"gotoLocation\";\n EditorOption[EditorOption[\"hideCursorInOverviewRuler\"] = 59] = \"hideCursorInOverviewRuler\";\n EditorOption[EditorOption[\"hover\"] = 60] = \"hover\";\n EditorOption[EditorOption[\"inDiffEditor\"] = 61] = \"inDiffEditor\";\n EditorOption[EditorOption[\"inlineSuggest\"] = 62] = \"inlineSuggest\";\n EditorOption[EditorOption[\"inlineEdit\"] = 63] = \"inlineEdit\";\n EditorOption[EditorOption[\"letterSpacing\"] = 64] = \"letterSpacing\";\n EditorOption[EditorOption[\"lightbulb\"] = 65] = \"lightbulb\";\n EditorOption[EditorOption[\"lineDecorationsWidth\"] = 66] = \"lineDecorationsWidth\";\n EditorOption[EditorOption[\"lineHeight\"] = 67] = \"lineHeight\";\n EditorOption[EditorOption[\"lineNumbers\"] = 68] = \"lineNumbers\";\n EditorOption[EditorOption[\"lineNumbersMinChars\"] = 69] = \"lineNumbersMinChars\";\n EditorOption[EditorOption[\"linkedEditing\"] = 70] = \"linkedEditing\";\n EditorOption[EditorOption[\"links\"] = 71] = \"links\";\n EditorOption[EditorOption[\"matchBrackets\"] = 72] = \"matchBrackets\";\n EditorOption[EditorOption[\"minimap\"] = 73] = \"minimap\";\n EditorOption[EditorOption[\"mouseStyle\"] = 74] = \"mouseStyle\";\n EditorOption[EditorOption[\"mouseWheelScrollSensitivity\"] = 75] = \"mouseWheelScrollSensitivity\";\n EditorOption[EditorOption[\"mouseWheelZoom\"] = 76] = \"mouseWheelZoom\";\n EditorOption[EditorOption[\"multiCursorMergeOverlapping\"] = 77] = \"multiCursorMergeOverlapping\";\n EditorOption[EditorOption[\"multiCursorModifier\"] = 78] = \"multiCursorModifier\";\n EditorOption[EditorOption[\"multiCursorPaste\"] = 79] = \"multiCursorPaste\";\n EditorOption[EditorOption[\"multiCursorLimit\"] = 80] = \"multiCursorLimit\";\n EditorOption[EditorOption[\"occurrencesHighlight\"] = 81] = \"occurrencesHighlight\";\n EditorOption[EditorOption[\"overviewRulerBorder\"] = 82] = \"overviewRulerBorder\";\n EditorOption[EditorOption[\"overviewRulerLanes\"] = 83] = \"overviewRulerLanes\";\n EditorOption[EditorOption[\"padding\"] = 84] = \"padding\";\n EditorOption[EditorOption[\"pasteAs\"] = 85] = \"pasteAs\";\n EditorOption[EditorOption[\"parameterHints\"] = 86] = \"parameterHints\";\n EditorOption[EditorOption[\"peekWidgetDefaultFocus\"] = 87] = \"peekWidgetDefaultFocus\";\n EditorOption[EditorOption[\"definitionLinkOpensInPeek\"] = 88] = \"definitionLinkOpensInPeek\";\n EditorOption[EditorOption[\"quickSuggestions\"] = 89] = \"quickSuggestions\";\n EditorOption[EditorOption[\"quickSuggestionsDelay\"] = 90] = \"quickSuggestionsDelay\";\n EditorOption[EditorOption[\"readOnly\"] = 91] = \"readOnly\";\n EditorOption[EditorOption[\"readOnlyMessage\"] = 92] = \"readOnlyMessage\";\n EditorOption[EditorOption[\"renameOnType\"] = 93] = \"renameOnType\";\n EditorOption[EditorOption[\"renderControlCharacters\"] = 94] = \"renderControlCharacters\";\n EditorOption[EditorOption[\"renderFinalNewline\"] = 95] = \"renderFinalNewline\";\n EditorOption[EditorOption[\"renderLineHighlight\"] = 96] = \"renderLineHighlight\";\n EditorOption[EditorOption[\"renderLineHighlightOnlyWhenFocus\"] = 97] = \"renderLineHighlightOnlyWhenFocus\";\n EditorOption[EditorOption[\"renderValidationDecorations\"] = 98] = \"renderValidationDecorations\";\n EditorOption[EditorOption[\"renderWhitespace\"] = 99] = \"renderWhitespace\";\n EditorOption[EditorOption[\"revealHorizontalRightPadding\"] = 100] = \"revealHorizontalRightPadding\";\n EditorOption[EditorOption[\"roundedSelection\"] = 101] = \"roundedSelection\";\n EditorOption[EditorOption[\"rulers\"] = 102] = \"rulers\";\n EditorOption[EditorOption[\"scrollbar\"] = 103] = \"scrollbar\";\n EditorOption[EditorOption[\"scrollBeyondLastColumn\"] = 104] = \"scrollBeyondLastColumn\";\n EditorOption[EditorOption[\"scrollBeyondLastLine\"] = 105] = \"scrollBeyondLastLine\";\n EditorOption[EditorOption[\"scrollPredominantAxis\"] = 106] = \"scrollPredominantAxis\";\n EditorOption[EditorOption[\"selectionClipboard\"] = 107] = \"selectionClipboard\";\n EditorOption[EditorOption[\"selectionHighlight\"] = 108] = \"selectionHighlight\";\n EditorOption[EditorOption[\"selectOnLineNumbers\"] = 109] = \"selectOnLineNumbers\";\n EditorOption[EditorOption[\"showFoldingControls\"] = 110] = \"showFoldingControls\";\n EditorOption[EditorOption[\"showUnused\"] = 111] = \"showUnused\";\n EditorOption[EditorOption[\"snippetSuggestions\"] = 112] = \"snippetSuggestions\";\n EditorOption[EditorOption[\"smartSelect\"] = 113] = \"smartSelect\";\n EditorOption[EditorOption[\"smoothScrolling\"] = 114] = \"smoothScrolling\";\n EditorOption[EditorOption[\"stickyScroll\"] = 115] = \"stickyScroll\";\n EditorOption[EditorOption[\"stickyTabStops\"] = 116] = \"stickyTabStops\";\n EditorOption[EditorOption[\"stopRenderingLineAfter\"] = 117] = \"stopRenderingLineAfter\";\n EditorOption[EditorOption[\"suggest\"] = 118] = \"suggest\";\n EditorOption[EditorOption[\"suggestFontSize\"] = 119] = \"suggestFontSize\";\n EditorOption[EditorOption[\"suggestLineHeight\"] = 120] = \"suggestLineHeight\";\n EditorOption[EditorOption[\"suggestOnTriggerCharacters\"] = 121] = \"suggestOnTriggerCharacters\";\n EditorOption[EditorOption[\"suggestSelection\"] = 122] = \"suggestSelection\";\n EditorOption[EditorOption[\"tabCompletion\"] = 123] = \"tabCompletion\";\n EditorOption[EditorOption[\"tabIndex\"] = 124] = \"tabIndex\";\n EditorOption[EditorOption[\"unicodeHighlighting\"] = 125] = \"unicodeHighlighting\";\n EditorOption[EditorOption[\"unusualLineTerminators\"] = 126] = \"unusualLineTerminators\";\n EditorOption[EditorOption[\"useShadowDOM\"] = 127] = \"useShadowDOM\";\n EditorOption[EditorOption[\"useTabStops\"] = 128] = \"useTabStops\";\n EditorOption[EditorOption[\"wordBreak\"] = 129] = \"wordBreak\";\n EditorOption[EditorOption[\"wordSegmenterLocales\"] = 130] = \"wordSegmenterLocales\";\n EditorOption[EditorOption[\"wordSeparators\"] = 131] = \"wordSeparators\";\n EditorOption[EditorOption[\"wordWrap\"] = 132] = \"wordWrap\";\n EditorOption[EditorOption[\"wordWrapBreakAfterCharacters\"] = 133] = \"wordWrapBreakAfterCharacters\";\n EditorOption[EditorOption[\"wordWrapBreakBeforeCharacters\"] = 134] = \"wordWrapBreakBeforeCharacters\";\n EditorOption[EditorOption[\"wordWrapColumn\"] = 135] = \"wordWrapColumn\";\n EditorOption[EditorOption[\"wordWrapOverride1\"] = 136] = \"wordWrapOverride1\";\n EditorOption[EditorOption[\"wordWrapOverride2\"] = 137] = \"wordWrapOverride2\";\n EditorOption[EditorOption[\"wrappingIndent\"] = 138] = \"wrappingIndent\";\n EditorOption[EditorOption[\"wrappingStrategy\"] = 139] = \"wrappingStrategy\";\n EditorOption[EditorOption[\"showDeprecated\"] = 140] = \"showDeprecated\";\n EditorOption[EditorOption[\"inlayHints\"] = 141] = \"inlayHints\";\n EditorOption[EditorOption[\"editorClassName\"] = 142] = \"editorClassName\";\n EditorOption[EditorOption[\"pixelRatio\"] = 143] = \"pixelRatio\";\n EditorOption[EditorOption[\"tabFocusMode\"] = 144] = \"tabFocusMode\";\n EditorOption[EditorOption[\"layoutInfo\"] = 145] = \"layoutInfo\";\n EditorOption[EditorOption[\"wrappingInfo\"] = 146] = \"wrappingInfo\";\n EditorOption[EditorOption[\"defaultColorDecorators\"] = 147] = \"defaultColorDecorators\";\n EditorOption[EditorOption[\"colorDecoratorsActivatedOn\"] = 148] = \"colorDecoratorsActivatedOn\";\n EditorOption[EditorOption[\"inlineCompletionsAccessibilityVerbose\"] = 149] = \"inlineCompletionsAccessibilityVerbose\";\n})(EditorOption || (EditorOption = {}));\n/**\n * End of line character preference.\n */\nexport var EndOfLinePreference;\n(function (EndOfLinePreference) {\n /**\n * Use the end of line character identified in the text buffer.\n */\n EndOfLinePreference[EndOfLinePreference[\"TextDefined\"] = 0] = \"TextDefined\";\n /**\n * Use line feed (\\n) as the end of line character.\n */\n EndOfLinePreference[EndOfLinePreference[\"LF\"] = 1] = \"LF\";\n /**\n * Use carriage return and line feed (\\r\\n) as the end of line character.\n */\n EndOfLinePreference[EndOfLinePreference[\"CRLF\"] = 2] = \"CRLF\";\n})(EndOfLinePreference || (EndOfLinePreference = {}));\n/**\n * End of line character preference.\n */\nexport var EndOfLineSequence;\n(function (EndOfLineSequence) {\n /**\n * Use line feed (\\n) as the end of line character.\n */\n EndOfLineSequence[EndOfLineSequence[\"LF\"] = 0] = \"LF\";\n /**\n * Use carriage return and line feed (\\r\\n) as the end of line character.\n */\n EndOfLineSequence[EndOfLineSequence[\"CRLF\"] = 1] = \"CRLF\";\n})(EndOfLineSequence || (EndOfLineSequence = {}));\n/**\n * Vertical Lane in the glyph margin of the editor.\n */\nexport var GlyphMarginLane;\n(function (GlyphMarginLane) {\n GlyphMarginLane[GlyphMarginLane[\"Left\"] = 1] = \"Left\";\n GlyphMarginLane[GlyphMarginLane[\"Center\"] = 2] = \"Center\";\n GlyphMarginLane[GlyphMarginLane[\"Right\"] = 3] = \"Right\";\n})(GlyphMarginLane || (GlyphMarginLane = {}));\nexport var HoverVerbosityAction;\n(function (HoverVerbosityAction) {\n /**\n * Increase the verbosity of the hover\n */\n HoverVerbosityAction[HoverVerbosityAction[\"Increase\"] = 0] = \"Increase\";\n /**\n * Decrease the verbosity of the hover\n */\n HoverVerbosityAction[HoverVerbosityAction[\"Decrease\"] = 1] = \"Decrease\";\n})(HoverVerbosityAction || (HoverVerbosityAction = {}));\n/**\n * Describes what to do with the indentation when pressing Enter.\n */\nexport var IndentAction;\n(function (IndentAction) {\n /**\n * Insert new line and copy the previous line's indentation.\n */\n IndentAction[IndentAction[\"None\"] = 0] = \"None\";\n /**\n * Insert new line and indent once (relative to the previous line's indentation).\n */\n IndentAction[IndentAction[\"Indent\"] = 1] = \"Indent\";\n /**\n * Insert two new lines:\n * - the first one indented which will hold the cursor\n * - the second one at the same indentation level\n */\n IndentAction[IndentAction[\"IndentOutdent\"] = 2] = \"IndentOutdent\";\n /**\n * Insert new line and outdent once (relative to the previous line's indentation).\n */\n IndentAction[IndentAction[\"Outdent\"] = 3] = \"Outdent\";\n})(IndentAction || (IndentAction = {}));\nexport var InjectedTextCursorStops;\n(function (InjectedTextCursorStops) {\n InjectedTextCursorStops[InjectedTextCursorStops[\"Both\"] = 0] = \"Both\";\n InjectedTextCursorStops[InjectedTextCursorStops[\"Right\"] = 1] = \"Right\";\n InjectedTextCursorStops[InjectedTextCursorStops[\"Left\"] = 2] = \"Left\";\n InjectedTextCursorStops[InjectedTextCursorStops[\"None\"] = 3] = \"None\";\n})(InjectedTextCursorStops || (InjectedTextCursorStops = {}));\nexport var InlayHintKind;\n(function (InlayHintKind) {\n InlayHintKind[InlayHintKind[\"Type\"] = 1] = \"Type\";\n InlayHintKind[InlayHintKind[\"Parameter\"] = 2] = \"Parameter\";\n})(InlayHintKind || (InlayHintKind = {}));\n/**\n * How an {@link InlineCompletionsProvider inline completion provider} was triggered.\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n /**\n * Completion was triggered automatically while editing.\n * It is sufficient to return a single completion item in this case.\n */\n InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Automatic\"] = 0] = \"Automatic\";\n /**\n * Completion was triggered explicitly by a user gesture.\n * Return multiple completion items to enable cycling through them.\n */\n InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Explicit\"] = 1] = \"Explicit\";\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport var InlineEditTriggerKind;\n(function (InlineEditTriggerKind) {\n InlineEditTriggerKind[InlineEditTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n InlineEditTriggerKind[InlineEditTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(InlineEditTriggerKind || (InlineEditTriggerKind = {}));\n/**\n * Virtual Key Codes, the value does not hold any inherent meaning.\n * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx\n * But these are \"more general\", as they should work across browsers & OS`s.\n */\nexport var KeyCode;\n(function (KeyCode) {\n KeyCode[KeyCode[\"DependsOnKbLayout\"] = -1] = \"DependsOnKbLayout\";\n /**\n * Placed first to cover the 0 value of the enum.\n */\n KeyCode[KeyCode[\"Unknown\"] = 0] = \"Unknown\";\n KeyCode[KeyCode[\"Backspace\"] = 1] = \"Backspace\";\n KeyCode[KeyCode[\"Tab\"] = 2] = \"Tab\";\n KeyCode[KeyCode[\"Enter\"] = 3] = \"Enter\";\n KeyCode[KeyCode[\"Shift\"] = 4] = \"Shift\";\n KeyCode[KeyCode[\"Ctrl\"] = 5] = \"Ctrl\";\n KeyCode[KeyCode[\"Alt\"] = 6] = \"Alt\";\n KeyCode[KeyCode[\"PauseBreak\"] = 7] = \"PauseBreak\";\n KeyCode[KeyCode[\"CapsLock\"] = 8] = \"CapsLock\";\n KeyCode[KeyCode[\"Escape\"] = 9] = \"Escape\";\n KeyCode[KeyCode[\"Space\"] = 10] = \"Space\";\n KeyCode[KeyCode[\"PageUp\"] = 11] = \"PageUp\";\n KeyCode[KeyCode[\"PageDown\"] = 12] = \"PageDown\";\n KeyCode[KeyCode[\"End\"] = 13] = \"End\";\n KeyCode[KeyCode[\"Home\"] = 14] = \"Home\";\n KeyCode[KeyCode[\"LeftArrow\"] = 15] = \"LeftArrow\";\n KeyCode[KeyCode[\"UpArrow\"] = 16] = \"UpArrow\";\n KeyCode[KeyCode[\"RightArrow\"] = 17] = \"RightArrow\";\n KeyCode[KeyCode[\"DownArrow\"] = 18] = \"DownArrow\";\n KeyCode[KeyCode[\"Insert\"] = 19] = \"Insert\";\n KeyCode[KeyCode[\"Delete\"] = 20] = \"Delete\";\n KeyCode[KeyCode[\"Digit0\"] = 21] = \"Digit0\";\n KeyCode[KeyCode[\"Digit1\"] = 22] = \"Digit1\";\n KeyCode[KeyCode[\"Digit2\"] = 23] = \"Digit2\";\n KeyCode[KeyCode[\"Digit3\"] = 24] = \"Digit3\";\n KeyCode[KeyCode[\"Digit4\"] = 25] = \"Digit4\";\n KeyCode[KeyCode[\"Digit5\"] = 26] = \"Digit5\";\n KeyCode[KeyCode[\"Digit6\"] = 27] = \"Digit6\";\n KeyCode[KeyCode[\"Digit7\"] = 28] = \"Digit7\";\n KeyCode[KeyCode[\"Digit8\"] = 29] = \"Digit8\";\n KeyCode[KeyCode[\"Digit9\"] = 30] = \"Digit9\";\n KeyCode[KeyCode[\"KeyA\"] = 31] = \"KeyA\";\n KeyCode[KeyCode[\"KeyB\"] = 32] = \"KeyB\";\n KeyCode[KeyCode[\"KeyC\"] = 33] = \"KeyC\";\n KeyCode[KeyCode[\"KeyD\"] = 34] = \"KeyD\";\n KeyCode[KeyCode[\"KeyE\"] = 35] = \"KeyE\";\n KeyCode[KeyCode[\"KeyF\"] = 36] = \"KeyF\";\n KeyCode[KeyCode[\"KeyG\"] = 37] = \"KeyG\";\n KeyCode[KeyCode[\"KeyH\"] = 38] = \"KeyH\";\n KeyCode[KeyCode[\"KeyI\"] = 39] = \"KeyI\";\n KeyCode[KeyCode[\"KeyJ\"] = 40] = \"KeyJ\";\n KeyCode[KeyCode[\"KeyK\"] = 41] = \"KeyK\";\n KeyCode[KeyCode[\"KeyL\"] = 42] = \"KeyL\";\n KeyCode[KeyCode[\"KeyM\"] = 43] = \"KeyM\";\n KeyCode[KeyCode[\"KeyN\"] = 44] = \"KeyN\";\n KeyCode[KeyCode[\"KeyO\"] = 45] = \"KeyO\";\n KeyCode[KeyCode[\"KeyP\"] = 46] = \"KeyP\";\n KeyCode[KeyCode[\"KeyQ\"] = 47] = \"KeyQ\";\n KeyCode[KeyCode[\"KeyR\"] = 48] = \"KeyR\";\n KeyCode[KeyCode[\"KeyS\"] = 49] = \"KeyS\";\n KeyCode[KeyCode[\"KeyT\"] = 50] = \"KeyT\";\n KeyCode[KeyCode[\"KeyU\"] = 51] = \"KeyU\";\n KeyCode[KeyCode[\"KeyV\"] = 52] = \"KeyV\";\n KeyCode[KeyCode[\"KeyW\"] = 53] = \"KeyW\";\n KeyCode[KeyCode[\"KeyX\"] = 54] = \"KeyX\";\n KeyCode[KeyCode[\"KeyY\"] = 55] = \"KeyY\";\n KeyCode[KeyCode[\"KeyZ\"] = 56] = \"KeyZ\";\n KeyCode[KeyCode[\"Meta\"] = 57] = \"Meta\";\n KeyCode[KeyCode[\"ContextMenu\"] = 58] = \"ContextMenu\";\n KeyCode[KeyCode[\"F1\"] = 59] = \"F1\";\n KeyCode[KeyCode[\"F2\"] = 60] = \"F2\";\n KeyCode[KeyCode[\"F3\"] = 61] = \"F3\";\n KeyCode[KeyCode[\"F4\"] = 62] = \"F4\";\n KeyCode[KeyCode[\"F5\"] = 63] = \"F5\";\n KeyCode[KeyCode[\"F6\"] = 64] = \"F6\";\n KeyCode[KeyCode[\"F7\"] = 65] = \"F7\";\n KeyCode[KeyCode[\"F8\"] = 66] = \"F8\";\n KeyCode[KeyCode[\"F9\"] = 67] = \"F9\";\n KeyCode[KeyCode[\"F10\"] = 68] = \"F10\";\n KeyCode[KeyCode[\"F11\"] = 69] = \"F11\";\n KeyCode[KeyCode[\"F12\"] = 70] = \"F12\";\n KeyCode[KeyCode[\"F13\"] = 71] = \"F13\";\n KeyCode[KeyCode[\"F14\"] = 72] = \"F14\";\n KeyCode[KeyCode[\"F15\"] = 73] = \"F15\";\n KeyCode[KeyCode[\"F16\"] = 74] = \"F16\";\n KeyCode[KeyCode[\"F17\"] = 75] = \"F17\";\n KeyCode[KeyCode[\"F18\"] = 76] = \"F18\";\n KeyCode[KeyCode[\"F19\"] = 77] = \"F19\";\n KeyCode[KeyCode[\"F20\"] = 78] = \"F20\";\n KeyCode[KeyCode[\"F21\"] = 79] = \"F21\";\n KeyCode[KeyCode[\"F22\"] = 80] = \"F22\";\n KeyCode[KeyCode[\"F23\"] = 81] = \"F23\";\n KeyCode[KeyCode[\"F24\"] = 82] = \"F24\";\n KeyCode[KeyCode[\"NumLock\"] = 83] = \"NumLock\";\n KeyCode[KeyCode[\"ScrollLock\"] = 84] = \"ScrollLock\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n * For the US standard keyboard, the ';:' key\n */\n KeyCode[KeyCode[\"Semicolon\"] = 85] = \"Semicolon\";\n /**\n * For any country/region, the '+' key\n * For the US standard keyboard, the '=+' key\n */\n KeyCode[KeyCode[\"Equal\"] = 86] = \"Equal\";\n /**\n * For any country/region, the ',' key\n * For the US standard keyboard, the ',<' key\n */\n KeyCode[KeyCode[\"Comma\"] = 87] = \"Comma\";\n /**\n * For any country/region, the '-' key\n * For the US standard keyboard, the '-_' key\n */\n KeyCode[KeyCode[\"Minus\"] = 88] = \"Minus\";\n /**\n * For any country/region, the '.' key\n * For the US standard keyboard, the '.>' key\n */\n KeyCode[KeyCode[\"Period\"] = 89] = \"Period\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n * For the US standard keyboard, the '/?' key\n */\n KeyCode[KeyCode[\"Slash\"] = 90] = \"Slash\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n * For the US standard keyboard, the '`~' key\n */\n KeyCode[KeyCode[\"Backquote\"] = 91] = \"Backquote\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n * For the US standard keyboard, the '[{' key\n */\n KeyCode[KeyCode[\"BracketLeft\"] = 92] = \"BracketLeft\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n * For the US standard keyboard, the '\\|' key\n */\n KeyCode[KeyCode[\"Backslash\"] = 93] = \"Backslash\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n * For the US standard keyboard, the ']}' key\n */\n KeyCode[KeyCode[\"BracketRight\"] = 94] = \"BracketRight\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n * For the US standard keyboard, the ''\"' key\n */\n KeyCode[KeyCode[\"Quote\"] = 95] = \"Quote\";\n /**\n * Used for miscellaneous characters; it can vary by keyboard.\n */\n KeyCode[KeyCode[\"OEM_8\"] = 96] = \"OEM_8\";\n /**\n * Either the angle bracket key or the backslash key on the RT 102-key keyboard.\n */\n KeyCode[KeyCode[\"IntlBackslash\"] = 97] = \"IntlBackslash\";\n KeyCode[KeyCode[\"Numpad0\"] = 98] = \"Numpad0\";\n KeyCode[KeyCode[\"Numpad1\"] = 99] = \"Numpad1\";\n KeyCode[KeyCode[\"Numpad2\"] = 100] = \"Numpad2\";\n KeyCode[KeyCode[\"Numpad3\"] = 101] = \"Numpad3\";\n KeyCode[KeyCode[\"Numpad4\"] = 102] = \"Numpad4\";\n KeyCode[KeyCode[\"Numpad5\"] = 103] = \"Numpad5\";\n KeyCode[KeyCode[\"Numpad6\"] = 104] = \"Numpad6\";\n KeyCode[KeyCode[\"Numpad7\"] = 105] = \"Numpad7\";\n KeyCode[KeyCode[\"Numpad8\"] = 106] = \"Numpad8\";\n KeyCode[KeyCode[\"Numpad9\"] = 107] = \"Numpad9\";\n KeyCode[KeyCode[\"NumpadMultiply\"] = 108] = \"NumpadMultiply\";\n KeyCode[KeyCode[\"NumpadAdd\"] = 109] = \"NumpadAdd\";\n KeyCode[KeyCode[\"NUMPAD_SEPARATOR\"] = 110] = \"NUMPAD_SEPARATOR\";\n KeyCode[KeyCode[\"NumpadSubtract\"] = 111] = \"NumpadSubtract\";\n KeyCode[KeyCode[\"NumpadDecimal\"] = 112] = \"NumpadDecimal\";\n KeyCode[KeyCode[\"NumpadDivide\"] = 113] = \"NumpadDivide\";\n /**\n * Cover all key codes when IME is processing input.\n */\n KeyCode[KeyCode[\"KEY_IN_COMPOSITION\"] = 114] = \"KEY_IN_COMPOSITION\";\n KeyCode[KeyCode[\"ABNT_C1\"] = 115] = \"ABNT_C1\";\n KeyCode[KeyCode[\"ABNT_C2\"] = 116] = \"ABNT_C2\";\n KeyCode[KeyCode[\"AudioVolumeMute\"] = 117] = \"AudioVolumeMute\";\n KeyCode[KeyCode[\"AudioVolumeUp\"] = 118] = \"AudioVolumeUp\";\n KeyCode[KeyCode[\"AudioVolumeDown\"] = 119] = \"AudioVolumeDown\";\n KeyCode[KeyCode[\"BrowserSearch\"] = 120] = \"BrowserSearch\";\n KeyCode[KeyCode[\"BrowserHome\"] = 121] = \"BrowserHome\";\n KeyCode[KeyCode[\"BrowserBack\"] = 122] = \"BrowserBack\";\n KeyCode[KeyCode[\"BrowserForward\"] = 123] = \"BrowserForward\";\n KeyCode[KeyCode[\"MediaTrackNext\"] = 124] = \"MediaTrackNext\";\n KeyCode[KeyCode[\"MediaTrackPrevious\"] = 125] = \"MediaTrackPrevious\";\n KeyCode[KeyCode[\"MediaStop\"] = 126] = \"MediaStop\";\n KeyCode[KeyCode[\"MediaPlayPause\"] = 127] = \"MediaPlayPause\";\n KeyCode[KeyCode[\"LaunchMediaPlayer\"] = 128] = \"LaunchMediaPlayer\";\n KeyCode[KeyCode[\"LaunchMail\"] = 129] = \"LaunchMail\";\n KeyCode[KeyCode[\"LaunchApp2\"] = 130] = \"LaunchApp2\";\n /**\n * VK_CLEAR, 0x0C, CLEAR key\n */\n KeyCode[KeyCode[\"Clear\"] = 131] = \"Clear\";\n /**\n * Placed last to cover the length of the enum.\n * Please do not depend on this value!\n */\n KeyCode[KeyCode[\"MAX_VALUE\"] = 132] = \"MAX_VALUE\";\n})(KeyCode || (KeyCode = {}));\nexport var MarkerSeverity;\n(function (MarkerSeverity) {\n MarkerSeverity[MarkerSeverity[\"Hint\"] = 1] = \"Hint\";\n MarkerSeverity[MarkerSeverity[\"Info\"] = 2] = \"Info\";\n MarkerSeverity[MarkerSeverity[\"Warning\"] = 4] = \"Warning\";\n MarkerSeverity[MarkerSeverity[\"Error\"] = 8] = \"Error\";\n})(MarkerSeverity || (MarkerSeverity = {}));\nexport var MarkerTag;\n(function (MarkerTag) {\n MarkerTag[MarkerTag[\"Unnecessary\"] = 1] = \"Unnecessary\";\n MarkerTag[MarkerTag[\"Deprecated\"] = 2] = \"Deprecated\";\n})(MarkerTag || (MarkerTag = {}));\n/**\n * Position in the minimap to render the decoration.\n */\nexport var MinimapPosition;\n(function (MinimapPosition) {\n MinimapPosition[MinimapPosition[\"Inline\"] = 1] = \"Inline\";\n MinimapPosition[MinimapPosition[\"Gutter\"] = 2] = \"Gutter\";\n})(MinimapPosition || (MinimapPosition = {}));\n/**\n * Section header style.\n */\nexport var MinimapSectionHeaderStyle;\n(function (MinimapSectionHeaderStyle) {\n MinimapSectionHeaderStyle[MinimapSectionHeaderStyle[\"Normal\"] = 1] = \"Normal\";\n MinimapSectionHeaderStyle[MinimapSectionHeaderStyle[\"Underlined\"] = 2] = \"Underlined\";\n})(MinimapSectionHeaderStyle || (MinimapSectionHeaderStyle = {}));\n/**\n * Type of hit element with the mouse in the editor.\n */\nexport var MouseTargetType;\n(function (MouseTargetType) {\n /**\n * Mouse is on top of an unknown element.\n */\n MouseTargetType[MouseTargetType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n /**\n * Mouse is on top of the textarea used for input.\n */\n MouseTargetType[MouseTargetType[\"TEXTAREA\"] = 1] = \"TEXTAREA\";\n /**\n * Mouse is on top of the glyph margin\n */\n MouseTargetType[MouseTargetType[\"GUTTER_GLYPH_MARGIN\"] = 2] = \"GUTTER_GLYPH_MARGIN\";\n /**\n * Mouse is on top of the line numbers\n */\n MouseTargetType[MouseTargetType[\"GUTTER_LINE_NUMBERS\"] = 3] = \"GUTTER_LINE_NUMBERS\";\n /**\n * Mouse is on top of the line decorations\n */\n MouseTargetType[MouseTargetType[\"GUTTER_LINE_DECORATIONS\"] = 4] = \"GUTTER_LINE_DECORATIONS\";\n /**\n * Mouse is on top of the whitespace left in the gutter by a view zone.\n */\n MouseTargetType[MouseTargetType[\"GUTTER_VIEW_ZONE\"] = 5] = \"GUTTER_VIEW_ZONE\";\n /**\n * Mouse is on top of text in the content.\n */\n MouseTargetType[MouseTargetType[\"CONTENT_TEXT\"] = 6] = \"CONTENT_TEXT\";\n /**\n * Mouse is on top of empty space in the content (e.g. after line text or below last line)\n */\n MouseTargetType[MouseTargetType[\"CONTENT_EMPTY\"] = 7] = \"CONTENT_EMPTY\";\n /**\n * Mouse is on top of a view zone in the content.\n */\n MouseTargetType[MouseTargetType[\"CONTENT_VIEW_ZONE\"] = 8] = \"CONTENT_VIEW_ZONE\";\n /**\n * Mouse is on top of a content widget.\n */\n MouseTargetType[MouseTargetType[\"CONTENT_WIDGET\"] = 9] = \"CONTENT_WIDGET\";\n /**\n * Mouse is on top of the decorations overview ruler.\n */\n MouseTargetType[MouseTargetType[\"OVERVIEW_RULER\"] = 10] = \"OVERVIEW_RULER\";\n /**\n * Mouse is on top of a scrollbar.\n */\n MouseTargetType[MouseTargetType[\"SCROLLBAR\"] = 11] = \"SCROLLBAR\";\n /**\n * Mouse is on top of an overlay widget.\n */\n MouseTargetType[MouseTargetType[\"OVERLAY_WIDGET\"] = 12] = \"OVERLAY_WIDGET\";\n /**\n * Mouse is outside of the editor.\n */\n MouseTargetType[MouseTargetType[\"OUTSIDE_EDITOR\"] = 13] = \"OUTSIDE_EDITOR\";\n})(MouseTargetType || (MouseTargetType = {}));\nexport var NewSymbolNameTag;\n(function (NewSymbolNameTag) {\n NewSymbolNameTag[NewSymbolNameTag[\"AIGenerated\"] = 1] = \"AIGenerated\";\n})(NewSymbolNameTag || (NewSymbolNameTag = {}));\nexport var NewSymbolNameTriggerKind;\n(function (NewSymbolNameTriggerKind) {\n NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(NewSymbolNameTriggerKind || (NewSymbolNameTriggerKind = {}));\n/**\n * A positioning preference for rendering overlay widgets.\n */\nexport var OverlayWidgetPositionPreference;\n(function (OverlayWidgetPositionPreference) {\n /**\n * Position the overlay widget in the top right corner\n */\n OverlayWidgetPositionPreference[OverlayWidgetPositionPreference[\"TOP_RIGHT_CORNER\"] = 0] = \"TOP_RIGHT_CORNER\";\n /**\n * Position the overlay widget in the bottom right corner\n */\n OverlayWidgetPositionPreference[OverlayWidgetPositionPreference[\"BOTTOM_RIGHT_CORNER\"] = 1] = \"BOTTOM_RIGHT_CORNER\";\n /**\n * Position the overlay widget in the top center\n */\n OverlayWidgetPositionPreference[OverlayWidgetPositionPreference[\"TOP_CENTER\"] = 2] = \"TOP_CENTER\";\n})(OverlayWidgetPositionPreference || (OverlayWidgetPositionPreference = {}));\n/**\n * Vertical Lane in the overview ruler of the editor.\n */\nexport var OverviewRulerLane;\n(function (OverviewRulerLane) {\n OverviewRulerLane[OverviewRulerLane[\"Left\"] = 1] = \"Left\";\n OverviewRulerLane[OverviewRulerLane[\"Center\"] = 2] = \"Center\";\n OverviewRulerLane[OverviewRulerLane[\"Right\"] = 4] = \"Right\";\n OverviewRulerLane[OverviewRulerLane[\"Full\"] = 7] = \"Full\";\n})(OverviewRulerLane || (OverviewRulerLane = {}));\n/**\n * How a partial acceptance was triggered.\n */\nexport var PartialAcceptTriggerKind;\n(function (PartialAcceptTriggerKind) {\n PartialAcceptTriggerKind[PartialAcceptTriggerKind[\"Word\"] = 0] = \"Word\";\n PartialAcceptTriggerKind[PartialAcceptTriggerKind[\"Line\"] = 1] = \"Line\";\n PartialAcceptTriggerKind[PartialAcceptTriggerKind[\"Suggest\"] = 2] = \"Suggest\";\n})(PartialAcceptTriggerKind || (PartialAcceptTriggerKind = {}));\nexport var PositionAffinity;\n(function (PositionAffinity) {\n /**\n * Prefers the left most position.\n */\n PositionAffinity[PositionAffinity[\"Left\"] = 0] = \"Left\";\n /**\n * Prefers the right most position.\n */\n PositionAffinity[PositionAffinity[\"Right\"] = 1] = \"Right\";\n /**\n * No preference.\n */\n PositionAffinity[PositionAffinity[\"None\"] = 2] = \"None\";\n /**\n * If the given position is on injected text, prefers the position left of it.\n */\n PositionAffinity[PositionAffinity[\"LeftOfInjectedText\"] = 3] = \"LeftOfInjectedText\";\n /**\n * If the given position is on injected text, prefers the position right of it.\n */\n PositionAffinity[PositionAffinity[\"RightOfInjectedText\"] = 4] = \"RightOfInjectedText\";\n})(PositionAffinity || (PositionAffinity = {}));\nexport var RenderLineNumbersType;\n(function (RenderLineNumbersType) {\n RenderLineNumbersType[RenderLineNumbersType[\"Off\"] = 0] = \"Off\";\n RenderLineNumbersType[RenderLineNumbersType[\"On\"] = 1] = \"On\";\n RenderLineNumbersType[RenderLineNumbersType[\"Relative\"] = 2] = \"Relative\";\n RenderLineNumbersType[RenderLineNumbersType[\"Interval\"] = 3] = \"Interval\";\n RenderLineNumbersType[RenderLineNumbersType[\"Custom\"] = 4] = \"Custom\";\n})(RenderLineNumbersType || (RenderLineNumbersType = {}));\nexport var RenderMinimap;\n(function (RenderMinimap) {\n RenderMinimap[RenderMinimap[\"None\"] = 0] = \"None\";\n RenderMinimap[RenderMinimap[\"Text\"] = 1] = \"Text\";\n RenderMinimap[RenderMinimap[\"Blocks\"] = 2] = \"Blocks\";\n})(RenderMinimap || (RenderMinimap = {}));\nexport var ScrollType;\n(function (ScrollType) {\n ScrollType[ScrollType[\"Smooth\"] = 0] = \"Smooth\";\n ScrollType[ScrollType[\"Immediate\"] = 1] = \"Immediate\";\n})(ScrollType || (ScrollType = {}));\nexport var ScrollbarVisibility;\n(function (ScrollbarVisibility) {\n ScrollbarVisibility[ScrollbarVisibility[\"Auto\"] = 1] = \"Auto\";\n ScrollbarVisibility[ScrollbarVisibility[\"Hidden\"] = 2] = \"Hidden\";\n ScrollbarVisibility[ScrollbarVisibility[\"Visible\"] = 3] = \"Visible\";\n})(ScrollbarVisibility || (ScrollbarVisibility = {}));\n/**\n * The direction of a selection.\n */\nexport var SelectionDirection;\n(function (SelectionDirection) {\n /**\n * The selection starts above where it ends.\n */\n SelectionDirection[SelectionDirection[\"LTR\"] = 0] = \"LTR\";\n /**\n * The selection starts below where it ends.\n */\n SelectionDirection[SelectionDirection[\"RTL\"] = 1] = \"RTL\";\n})(SelectionDirection || (SelectionDirection = {}));\nexport var ShowLightbulbIconMode;\n(function (ShowLightbulbIconMode) {\n ShowLightbulbIconMode[\"Off\"] = \"off\";\n ShowLightbulbIconMode[\"OnCode\"] = \"onCode\";\n ShowLightbulbIconMode[\"On\"] = \"on\";\n})(ShowLightbulbIconMode || (ShowLightbulbIconMode = {}));\nexport var SignatureHelpTriggerKind;\n(function (SignatureHelpTriggerKind) {\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"Invoke\"] = 1] = \"Invoke\";\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"ContentChange\"] = 3] = \"ContentChange\";\n})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {}));\n/**\n * A symbol kind.\n */\nexport var SymbolKind;\n(function (SymbolKind) {\n SymbolKind[SymbolKind[\"File\"] = 0] = \"File\";\n SymbolKind[SymbolKind[\"Module\"] = 1] = \"Module\";\n SymbolKind[SymbolKind[\"Namespace\"] = 2] = \"Namespace\";\n SymbolKind[SymbolKind[\"Package\"] = 3] = \"Package\";\n SymbolKind[SymbolKind[\"Class\"] = 4] = \"Class\";\n SymbolKind[SymbolKind[\"Method\"] = 5] = \"Method\";\n SymbolKind[SymbolKind[\"Property\"] = 6] = \"Property\";\n SymbolKind[SymbolKind[\"Field\"] = 7] = \"Field\";\n SymbolKind[SymbolKind[\"Constructor\"] = 8] = \"Constructor\";\n SymbolKind[SymbolKind[\"Enum\"] = 9] = \"Enum\";\n SymbolKind[SymbolKind[\"Interface\"] = 10] = \"Interface\";\n SymbolKind[SymbolKind[\"Function\"] = 11] = \"Function\";\n SymbolKind[SymbolKind[\"Variable\"] = 12] = \"Variable\";\n SymbolKind[SymbolKind[\"Constant\"] = 13] = \"Constant\";\n SymbolKind[SymbolKind[\"String\"] = 14] = \"String\";\n SymbolKind[SymbolKind[\"Number\"] = 15] = \"Number\";\n SymbolKind[SymbolKind[\"Boolean\"] = 16] = \"Boolean\";\n SymbolKind[SymbolKind[\"Array\"] = 17] = \"Array\";\n SymbolKind[SymbolKind[\"Object\"] = 18] = \"Object\";\n SymbolKind[SymbolKind[\"Key\"] = 19] = \"Key\";\n SymbolKind[SymbolKind[\"Null\"] = 20] = \"Null\";\n SymbolKind[SymbolKind[\"EnumMember\"] = 21] = \"EnumMember\";\n SymbolKind[SymbolKind[\"Struct\"] = 22] = \"Struct\";\n SymbolKind[SymbolKind[\"Event\"] = 23] = \"Event\";\n SymbolKind[SymbolKind[\"Operator\"] = 24] = \"Operator\";\n SymbolKind[SymbolKind[\"TypeParameter\"] = 25] = \"TypeParameter\";\n})(SymbolKind || (SymbolKind = {}));\nexport var SymbolTag;\n(function (SymbolTag) {\n SymbolTag[SymbolTag[\"Deprecated\"] = 1] = \"Deprecated\";\n})(SymbolTag || (SymbolTag = {}));\n/**\n * The kind of animation in which the editor's cursor should be rendered.\n */\nexport var TextEditorCursorBlinkingStyle;\n(function (TextEditorCursorBlinkingStyle) {\n /**\n * Hidden\n */\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Hidden\"] = 0] = \"Hidden\";\n /**\n * Blinking\n */\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Blink\"] = 1] = \"Blink\";\n /**\n * Blinking with smooth fading\n */\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Smooth\"] = 2] = \"Smooth\";\n /**\n * Blinking with prolonged filled state and smooth fading\n */\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Phase\"] = 3] = \"Phase\";\n /**\n * Expand collapse animation on the y axis\n */\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Expand\"] = 4] = \"Expand\";\n /**\n * No-Blinking\n */\n TextEditorCursorBlinkingStyle[TextEditorCursorBlinkingStyle[\"Solid\"] = 5] = \"Solid\";\n})(TextEditorCursorBlinkingStyle || (TextEditorCursorBlinkingStyle = {}));\n/**\n * The style in which the editor's cursor should be rendered.\n */\nexport var TextEditorCursorStyle;\n(function (TextEditorCursorStyle) {\n /**\n * As a vertical line (sitting between two characters).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Line\"] = 1] = \"Line\";\n /**\n * As a block (sitting on top of a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Block\"] = 2] = \"Block\";\n /**\n * As a horizontal line (sitting under a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Underline\"] = 3] = \"Underline\";\n /**\n * As a thin vertical line (sitting between two characters).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"LineThin\"] = 4] = \"LineThin\";\n /**\n * As an outlined block (sitting on top of a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"BlockOutline\"] = 5] = \"BlockOutline\";\n /**\n * As a thin horizontal line (sitting under a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"UnderlineThin\"] = 6] = \"UnderlineThin\";\n})(TextEditorCursorStyle || (TextEditorCursorStyle = {}));\n/**\n * Describes the behavior of decorations when typing/editing near their edges.\n * Note: Please do not edit the values, as they very carefully match `DecorationRangeBehavior`\n */\nexport var TrackedRangeStickiness;\n(function (TrackedRangeStickiness) {\n TrackedRangeStickiness[TrackedRangeStickiness[\"AlwaysGrowsWhenTypingAtEdges\"] = 0] = \"AlwaysGrowsWhenTypingAtEdges\";\n TrackedRangeStickiness[TrackedRangeStickiness[\"NeverGrowsWhenTypingAtEdges\"] = 1] = \"NeverGrowsWhenTypingAtEdges\";\n TrackedRangeStickiness[TrackedRangeStickiness[\"GrowsOnlyWhenTypingBefore\"] = 2] = \"GrowsOnlyWhenTypingBefore\";\n TrackedRangeStickiness[TrackedRangeStickiness[\"GrowsOnlyWhenTypingAfter\"] = 3] = \"GrowsOnlyWhenTypingAfter\";\n})(TrackedRangeStickiness || (TrackedRangeStickiness = {}));\n/**\n * Describes how to indent wrapped lines.\n */\nexport var WrappingIndent;\n(function (WrappingIndent) {\n /**\n * No indentation => wrapped lines begin at column 1.\n */\n WrappingIndent[WrappingIndent[\"None\"] = 0] = \"None\";\n /**\n * Same => wrapped lines get the same indentation as the parent.\n */\n WrappingIndent[WrappingIndent[\"Same\"] = 1] = \"Same\";\n /**\n * Indent => wrapped lines get +1 indentation toward the parent.\n */\n WrappingIndent[WrappingIndent[\"Indent\"] = 2] = \"Indent\";\n /**\n * DeepIndent => wrapped lines get +2 indentation toward the parent.\n */\n WrappingIndent[WrappingIndent[\"DeepIndent\"] = 3] = \"DeepIndent\";\n})(WrappingIndent || (WrappingIndent = {}));\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 nls from '../../nls.js';\nexport var InspectTokensNLS;\n(function (InspectTokensNLS) {\n InspectTokensNLS.inspectTokensAction = nls.localize('inspectTokens', \"Developer: Inspect Tokens\");\n})(InspectTokensNLS || (InspectTokensNLS = {}));\nexport var GoToLineNLS;\n(function (GoToLineNLS) {\n GoToLineNLS.gotoLineActionLabel = nls.localize('gotoLineActionLabel', \"Go to Line/Column...\");\n})(GoToLineNLS || (GoToLineNLS = {}));\nexport var QuickHelpNLS;\n(function (QuickHelpNLS) {\n QuickHelpNLS.helpQuickAccessActionLabel = nls.localize('helpQuickAccess', \"Show all Quick Access Providers\");\n})(QuickHelpNLS || (QuickHelpNLS = {}));\nexport var QuickCommandNLS;\n(function (QuickCommandNLS) {\n QuickCommandNLS.quickCommandActionLabel = nls.localize('quickCommandActionLabel', \"Command Palette\");\n QuickCommandNLS.quickCommandHelp = nls.localize('quickCommandActionHelp', \"Show And Run Commands\");\n})(QuickCommandNLS || (QuickCommandNLS = {}));\nexport var QuickOutlineNLS;\n(function (QuickOutlineNLS) {\n QuickOutlineNLS.quickOutlineActionLabel = nls.localize('quickOutlineActionLabel', \"Go to Symbol...\");\n QuickOutlineNLS.quickOutlineByCategoryActionLabel = nls.localize('quickOutlineByCategoryActionLabel', \"Go to Symbol by Category...\");\n})(QuickOutlineNLS || (QuickOutlineNLS = {}));\nexport var StandaloneCodeEditorNLS;\n(function (StandaloneCodeEditorNLS) {\n StandaloneCodeEditorNLS.editorViewAccessibleLabel = nls.localize('editorViewAccessibleLabel', \"Editor content\");\n StandaloneCodeEditorNLS.accessibilityHelpMessage = nls.localize('accessibilityHelpMessage', \"Press Alt+F1 for Accessibility Options.\");\n})(StandaloneCodeEditorNLS || (StandaloneCodeEditorNLS = {}));\nexport var ToggleHighContrastNLS;\n(function (ToggleHighContrastNLS) {\n ToggleHighContrastNLS.toggleHighContrast = nls.localize('toggleHighContrast', \"Toggle High Contrast Theme\");\n})(ToggleHighContrastNLS || (ToggleHighContrastNLS = {}));\nexport var StandaloneServicesNLS;\n(function (StandaloneServicesNLS) {\n StandaloneServicesNLS.bulkEditServiceSummary = nls.localize('bulkEditServiceSummary', \"Made {0} edits in {1} files\");\n})(StandaloneServicesNLS || (StandaloneServicesNLS = {}));\n"],"names":["KeyMod","chord","firstPart","secondPart","createMonacoBaseAPI","editor","undefined","languages","CancellationTokenSource","Emitter","KeyCode","Position","Range","Selection","SelectionDirection","MarkerSeverity","MarkerTag","Uri","Token","CtrlCmd","Shift","Alt","WinCtrl","markRegex","RegExp","trimDashesRegex","findSectionHeaders","model","options","_a","headers","findRegionSectionHeaders","foldingRules","markers","regionHeaders","endLineNumber","getLineCount","lineNumber","lineContent","getLineContent","match","start","range","startLineNumber","startColumn","length","endColumn","sectionHeader","getHeaderText","substring","shouldBeInComments","text","hasSeparatorLine","push","collectRegionHeaders","concat","findMarkSectionHeaders","markHeaders","addMarkHeaderIfFound","collectMarkHeaders","sectionHeaders","lastIndex","exec","indices","trim","startsWith","replace","MirrorModel","uri","this","_uri","eol","_eol","getValue","getText","findMatches","regex","matches","i","_lines","line","offsetToAdd","offsetAt","iteratorOverMatches","matchAll","index","getLinesContent","slice","getWordAtPosition","position","wordDefinition","wordAtText","column","words","lines","wordenize","_wordenize","bind","lineText","wordRangesIdx","wordRanges","Symbol","iterator","value","end","getLineWords","content","ranges","word","result","getValueInRange","_validateRange","lineEnding","startLineIndex","endLineIndex","resultLines","join","_validatePosition","_ensureLineStarts","_lineStarts","getPrefixSum","positionAt","offset","Math","floor","max","out","getIndexOf","lineLength","min","remainder","Error","hasChanged","maxCharacter","EditorSimpleWorker","constructor","host","foreignModuleFactory","_host","_models","Object","create","_foreignModuleFactory","_foreignModule","dispose","_getModel","_getModels","all","keys","forEach","key","acceptNewModel","data","url","EOL","versionId","acceptModelChanged","strURL","e","onEvents","acceptRemovedModel","computeUnicodeHighlights","hasMore","ambiguousCharacterCount","invisibleCharacterCount","nonBasicAsciiCharacterCount","computeDiff","originalUrl","modifiedUrl","algorithm","original","modified","originalTextModel","modifiedTextModel","diffAlgorithm","linesDiffComputers","originalLines","modifiedLines","getLineChanges","changes","map","m","endLineNumberExclusive","innerChanges","originalRange","modifiedRange","identical","_modelsAreIdentical","quitEarly","hitTimeout","moves","lineRangeMapping","originalLineCount","computeMoreMinimalEdits","modelUrl","edits","pretty","lastEol","sort","a","b","writeIndex","readIndex","equals","_diffLimit","editOffset","getStartPosition","change","originalStart","originalLength","newEdit","substr","modifiedStart","modifiedLength","computeLinks","computeDefaultDocumentColors","textualSuggest","modelUrls","leadingWord","wordDef","wordDefFlags","sw","wordDefRegExp","seen","Set","outer","isNaN","Number","add","size","_suggestionsLimit","Array","from","duration","elapsed","computeWordRanges","array","navigateValueSet","up","selectionText","wordRange","loadForeignModule","moduleId","createData","foreignHostMethods","ctx","method","args","fhr","getMirrorModels","Promise","resolve","reject","fmr","apply","importScripts","globalThis","monaco","IEditorWorkerService","fileIconDirectoryRegex","getIconClasses","modelService","languageService","resource","fileKind","icon","id","classes","name","scheme","get","path","cssEscape","toLowerCase","authority","dotSegments","split","detectedLanguageId","languageId","mime","getLanguageIdByMimeType","getModel","getLanguageId","guessLanguageIdByFilepathOrFirstLine","detectLanguageId","str","__decorate","decorators","target","desc","d","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","ILanguageFeatureDebounceService","IdentityHash","_hashes","WeakMap","pool","of","obj","set","NullDebounceInformation","_default","_model","update","_value","FeatureDebounceInformation","_logService","_name","_registry","_min","_max","_cache","_key","reduce","hashVal","avg","default","newValue","trace","toString","_overall","LanguageFeatureDebounceService","envService","_data","Map","_isDev","isExtensionDevelopment","isBuilt","feature","config","_b","_c","extra","info","debug","_overallAverage","values","ILanguageFeaturesService","referenceProvider","_score","renameProvider","newSymbolNamesProvider","codeActionProvider","definitionProvider","typeDefinitionProvider","declarationProvider","implementationProvider","documentSymbolProvider","inlayHintsProvider","colorProvider","codeLensProvider","documentFormattingEditProvider","documentRangeFormattingEditProvider","onTypeFormattingEditProvider","signatureHelpProvider","hoverProvider","documentHighlightProvider","multiDocumentHighlightProvider","selectionRangeProvider","foldingRangeProvider","linkProvider","inlineCompletionsProvider","inlineEditProvider","completionProvider","linkedEditingRangeProvider","documentRangeSemanticTokensProvider","documentSemanticTokensProvider","documentDropEditProvider","documentPasteEditProvider","_notebookTypeResolver","call","registeredAssociations","nonUserRegisteredAssociations","userRegisteredAssociations","registerPlatformLanguageAssociation","association","warnOnOverwrite","userConfigured","associationItem","filename","extension","filepattern","firstline","filenameLowercase","extensionLowercase","filepatternLowercase","filepatternOnPath","indexOf","toLanguageAssociationItem","console","warn","_registerLanguageAssociation","getLanguageIds","firstLine","fsPath","configuredLanguage","getAssociationByPath","registeredLanguage","firstlineLanguage","getAssociationByFirstline","getAssociations","item","associations","filenameMatch","patternMatch","extensionMatch","endsWith","prototype","hasOwnProperty","NULL_LANGUAGE_ID","LanguageIdCodec","_languageIdToLanguage","_languageToLanguageId","_register","_nextLanguageId","language","register","has","encodeLanguageId","decodeLanguageId","LanguagesRegistry","useModesRegistry","super","_onDidChange","onDidChange","event","instanceCount","_warnOnOverwrite","languageIdCodec","_dynamicLanguages","_languages","_mimeTypesMap","_nameMap","_lowercaseNameMap","_initializeFromRegistry","filter","_registerLanguages","_registerLanguage","langId","identifier","aliases","alias","mimetypes","mimetype","registerOverrideIdentifiers","getRegisteredLanguageIds","fire","lang","resolvedLanguage","extensions","filenames","configurationFiles","icons","_mergeLanguage","primaryMime","isArray","configuration","filenamePatterns","filenamePattern","firstLineRegexStr","charAt","firstLineRegex","err","langAliases","langAlias","containsAliases","bestName","isRegisteredLanguageId","getLanguageIdByLanguageName","languageName","languageNameLower","mimeType","LanguageService","_onDidRequestBasicLanguageFeatures","onDidRequestBasicLanguageFeatures","_onDidRequestRichLanguageFeatures","onDidRequestRichLanguageFeatures","leakWarningThreshold","_requestedBasicLanguages","_requestedRichLanguages","languageIds","createById","LanguageSelection","_createAndGetLanguageIdentifier","createByFilepathOrFirstLine","requestBasicLanguageFeatures","requestRichLanguageFeatures","_onDidChangeLanguages","_selector","_listener","_emitter","_dispose","_evaluate","onDidRemoveLastListener","IMarkerDecorationsService","MarkerDecorationsService","_markerService","_onDidChangeMarker","_markerDecorations","getModels","_onModelAdded","onModelAdded","onModelRemoved","_onModelRemoved","onMarkerChanged","_handleMarkerChange","clear","getMarker","decoration","markerDecorations","changedResources","_updateDecorations","MarkerDecorations","delete","read","marker","owner","remove","take","_map","deltaDecorations","added","removed","oldIds","newDecorations","_createDecorationRange","_createDecorationOption","ids","removedMarker","getKey","rawMarker","ret","severity","_hasMarkerTag","setEndPosition","validateRange","isEmpty","maxColumn","getLineLastNonWhitespaceColumn","getLineMaxColumn","MAX_VALUE","minColumn","getLineFirstNonWhitespaceColumn","className","color","zIndex","inlineClassName","minimap","tags","description","stickiness","showIfCollapsed","overviewRuler","tag","IModelService","ModelService_1","MODEL_ID","ModelData","onWillDispose","onDidChangeLanguage","_modelEventListeners","DEFAULT_EOL","DisposedModelInfo","initialUndoRedoSnapshot","time","sharesUndoRedoStack","heapSize","sha1","alternativeVersionId","ModelService","_configurationService","_resourcePropertiesService","_undoRedoService","_languageService","_languageConfigurationService","_onModelModeChanged","onModelLanguageChanged","_modelCreationOptionsByLanguageAndResource","_disposedModels","_disposedModelsHeapSize","onDidChangeConfiguration","_updateModelOptions","_readModelOptions","isForSimpleWidget","tabSize","parsedTabSize","parseInt","indentSize","parsedIndentSize","insertSpaces","Boolean","newDefaultEOL","trimAutoWhitespace","detectIndentation","largeFileOptimizations","bracketPairColorizationOptions","bracketPairColorization","enabled","independentColorPoolPerBracketType","defaultEOL","_getEOL","getEOL","overrideIdentifier","_shouldRestoreUndoStack","getCreationOptions","languageIdOrSelection","creationOptions","oldOptionsByLanguageAndResource","len","modelId","modelData","affectsConfiguration","oldOptions","newOptions","_setModelOptionsForModel","currentOptions","setEOL","updateOptions","bracketColorizationOptions","_insertDisposedModel","disposedModelData","_removeDisposedModel","_ensureDisposedModelsHeapSize","maxModelsHeapSize","disposedModels","entry","disposedModel","shift","restoreSnapshot","_createModelData","elements","getElements","sha1Computer","_getSHA1Computer","sha1IsEqual","canComputeSHA1","computeSHA1","element","past","matchesResource","setModel","future","setElementsValidFlag","_overwriteVersionId","_overwriteAlternativeVersionId","_overwriteInitialUndoRedoSnapshot","_onWillDispose","_onDidChangeLanguage","createModel","languageSelection","_schemaShouldMaintainUndoRedoElements","getUriComparisonKey","maintainUndoRedoStack","maxMemory","MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK","getInitialUndoRedoSnapshot","Date","now","getVersionId","getAlternativeVersionId","oldLanguageId","oldLanguage","newLanguageId","DefaultModelSHA1Computer","getValueLength","MAX_MODEL_SIZE","shaComputer","snapshot","createSnapshot","digest","ITextModelService","encodeSemanticTokensDto","semanticTokens","dest","Uint32Array","type","deltas","delta","encodeSemanticTokensDtoSize","deleteCount","arr","uint8Arr","Uint8Array","buffer","byteOffset","b0","b1","b2","b3","reverseEndianness","toLittleEndianBuffer","SemanticTokensProviderStyling","_legend","_themeService","_hasWarnedOverlappingTokens","_hasWarnedInvalidLengthTokens","_hasWarnedInvalidEditStart","_hashTable","HashTable","getMetadata","tokenTypeIndex","tokenModifierSet","encodedLanguageId","metadata","getLevel","tokenType","tokenTypes","tokenModifiers","modifierSet","modifierIndex","JSON","stringify","tokenStyle","getColorTheme","getTokenStyleMetadata","italic","bold","underline","strikethrough","foreground","warnOverlappingSemanticTokens","warnInvalidLengthSemanticTokens","warnInvalidEditStart","previousResultId","resultId","editIndex","editStart","maxExpectedStart","toMultilineTokens2","tokens","styling","srcData","tokenCount","tokensPerArea","ceil","tokenIndex","lastLineNumber","lastStartCharacter","tokenStartIndex","tokenEndIndex","smallTokenEndIndex","bigTokenEndIndex","destData","destOffset","areaLine","prevLineNumber","prevEndCharacter","srcOffset","deltaLine","deltaCharacter","startCharacter","endCharacter","subarray","HashTableEntry","next","_elementsCount","_currentLengthIndex","_currentLength","_SIZES","_growCount","round","_elements","_nullOutEntries","entries","_hash2","n1","n2","_hashFunc","hash","p","oldElements","first","oldNext","_add","ISemanticTokensStylingService","SemanticTokensStylingService","_caches","onDidColorThemeChange","getStyling","provider","getLegend","ITextResourceConfigurationService","ITextResourcePropertiesService","TreeViewsDnDService","_dragOperations","removeDragOperationTransfer","uuid","operation","DraggedTreeItemsIdentifier","ITreeViewsDnDService","UnicodeTextModelHighlighter","startLine","endLine","codePointHighlighter","CodePointHighlighter","candidates","getCandidateCodePoints","codePoints","String","fromCodePoint","searcher","forLoop","lineCount","reset","startIndex","endIndex","charCodeBefore","charCodeAt","highlightReason","shouldHighlightNonBasicASCII","MAX_RESULT_LENGTH","computeUnicodeHighlightReason","char","kind","codePoint","codePointAt","primaryConfusable","ambiguousCharacters","getPrimaryConfusable","notAmbiguousInLocales","l","allowedLocales","isAmbiguous","confusableWith","allowedCodePoints","nonBasicASCII","invisibleCharacters","cp","isAllowedInvisibleCharacter","getConfusableCodePoints","character","wordContext","hasBasicASCIICharacters","hasNonConfusableNonBasicAsciiCharacter","isBasicASCII","AccessibilitySupport","CodeActionTriggerType","CompletionItemInsertTextRule","CompletionItemKind","CompletionItemTag","CompletionTriggerKind","ContentWidgetPositionPreference","CursorChangeReason","DefaultEndOfLine","DocumentHighlightKind","EditorAutoIndentStrategy","EditorOption","EndOfLinePreference","EndOfLineSequence","GlyphMarginLane","HoverVerbosityAction","IndentAction","InjectedTextCursorStops","InlayHintKind","InlineCompletionTriggerKind","InlineEditTriggerKind","MinimapPosition","MinimapSectionHeaderStyle","MouseTargetType","NewSymbolNameTag","NewSymbolNameTriggerKind","OverlayWidgetPositionPreference","OverviewRulerLane","PartialAcceptTriggerKind","PositionAffinity","RenderLineNumbersType","RenderMinimap","ScrollType","ScrollbarVisibility","ShowLightbulbIconMode","SignatureHelpTriggerKind","SymbolKind","SymbolTag","TextEditorCursorBlinkingStyle","TextEditorCursorStyle","TrackedRangeStickiness","WrappingIndent","InspectTokensNLS","GoToLineNLS","QuickHelpNLS","QuickCommandNLS","QuickOutlineNLS","StandaloneCodeEditorNLS","ToggleHighContrastNLS","StandaloneServicesNLS","inspectTokensAction","gotoLineActionLabel","helpQuickAccessActionLabel","quickCommandActionLabel","quickCommandHelp","quickOutlineActionLabel","quickOutlineByCategoryActionLabel","editorViewAccessibleLabel","accessibilityHelpMessage","toggleHighContrast","bulkEditServiceSummary"],"sourceRoot":""}