{"version":3,"file":"static/js/9715_24abe6caa0b7e05d0daa.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/contrib/sectionHeaders/browser/sectionHeaders.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/common/getSemanticTokens.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/common/semanticTokensConfig.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 *--------------------------------------------------------------------------------------------*/\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 { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nlet SectionHeaderDetector = class SectionHeaderDetector extends Disposable {\n constructor(editor, languageConfigurationService, editorWorkerService) {\n super();\n this.editor = editor;\n this.languageConfigurationService = languageConfigurationService;\n this.editorWorkerService = editorWorkerService;\n this.decorations = this.editor.createDecorationsCollection();\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.computePromise = null;\n this.currentOccurrences = {};\n this._register(editor.onDidChangeModel((e) => {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(editor.onDidChangeModelLanguage((e) => {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(languageConfigurationService.onDidChange((e) => {\n var _a;\n const editorLanguageId = (_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLanguageId();\n if (editorLanguageId && e.affects(editorLanguageId)) {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }\n }));\n this._register(editor.onDidChangeConfiguration(e => {\n if (this.options && !e.hasChanged(73 /* EditorOption.minimap */)) {\n return;\n }\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n // Remove any links (for the getting disabled case)\n this.updateDecorations([]);\n // Stop any computation (for the getting disabled case)\n this.stop();\n // Start computing (for the getting enabled case)\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(this.editor.onDidChangeModelContent(e => {\n this.computeSectionHeaders.schedule();\n }));\n this._register(editor.onDidChangeModelTokens((e) => {\n if (!this.computeSectionHeaders.isScheduled()) {\n this.computeSectionHeaders.schedule(1000);\n }\n }));\n this.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n this.findSectionHeaders();\n }, 250));\n this.computeSectionHeaders.schedule(0);\n }\n createOptions(minimap) {\n if (!minimap || !this.editor.hasModel()) {\n return undefined;\n }\n const languageId = this.editor.getModel().getLanguageId();\n if (!languageId) {\n return undefined;\n }\n const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n const foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n if (!commentsConfiguration && !(foldingRules === null || foldingRules === void 0 ? void 0 : foldingRules.markers)) {\n return undefined;\n }\n return {\n foldingRules,\n findMarkSectionHeaders: minimap.showMarkSectionHeaders,\n findRegionSectionHeaders: minimap.showRegionSectionHeaders,\n };\n }\n findSectionHeaders() {\n var _a, _b;\n if (!this.editor.hasModel()\n || (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.findMarkSectionHeaders) && !((_b = this.options) === null || _b === void 0 ? void 0 : _b.findRegionSectionHeaders))) {\n return;\n }\n const model = this.editor.getModel();\n if (model.isDisposed() || model.isTooLargeForSyncing()) {\n return;\n }\n const modelVersionId = model.getVersionId();\n this.editorWorkerService.findSectionHeaders(model.uri, this.options)\n .then((sectionHeaders) => {\n if (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n // model changed in the meantime\n return;\n }\n this.updateDecorations(sectionHeaders);\n });\n }\n updateDecorations(sectionHeaders) {\n const model = this.editor.getModel();\n if (model) {\n // Remove all section headers that should be in comments and are not in comments\n sectionHeaders = sectionHeaders.filter((sectionHeader) => {\n if (!sectionHeader.shouldBeInComments) {\n return true;\n }\n const validRange = model.validateRange(sectionHeader.range);\n const tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n const idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n const tokenType = tokens.getStandardTokenType(idx);\n const languageId = tokens.getLanguageId(idx);\n return (languageId === model.getLanguageId() && tokenType === 1 /* StandardTokenType.Comment */);\n });\n }\n const oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n const newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n this.editor.changeDecorations((changeAccessor) => {\n const decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n this.currentOccurrences = {};\n for (let i = 0, len = decorations.length; i < len; i++) {\n const occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n this.currentOccurrences[occurrence.decorationId] = occurrence;\n }\n });\n }\n stop() {\n this.computeSectionHeaders.cancel();\n if (this.computePromise) {\n this.computePromise.cancel();\n this.computePromise = null;\n }\n }\n dispose() {\n super.dispose();\n this.stop();\n this.decorations.clear();\n }\n};\nSectionHeaderDetector.ID = 'editor.sectionHeaderDetector';\nSectionHeaderDetector = __decorate([\n __param(1, ILanguageConfigurationService),\n __param(2, IEditorWorkerService)\n], SectionHeaderDetector);\nexport { SectionHeaderDetector };\nfunction decoration(sectionHeader) {\n return {\n range: sectionHeader.range,\n options: ModelDecorationOptions.createDynamic({\n description: 'section-header',\n stickiness: 3 /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */,\n collapseOnReplaceEdit: true,\n minimap: {\n color: undefined,\n position: 1 /* MinimapPosition.Inline */,\n sectionHeaderStyle: sectionHeader.hasSeparatorLine ? 2 /* MinimapSectionHeaderStyle.Underlined */ : 1 /* MinimapSectionHeaderStyle.Normal */,\n sectionHeaderText: sectionHeader.text,\n },\n })\n };\n}\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\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 ModelSemanticColoring_1;\nimport { Disposable, dispose } from '../../../../base/common/lifecycle.js';\nimport * as errors from '../../../../base/common/errors.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';\nimport { getDocumentSemanticTokens, hasDocumentSemanticTokensProvider, isSemanticTokens, isSemanticTokensEdits } from '../common/getSemanticTokens.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { SEMANTIC_HIGHLIGHTING_SETTING_ID, isSemanticColoringEnabled } from '../common/semanticTokensConfig.js';\nlet DocumentSemanticTokensFeature = class DocumentSemanticTokensFeature extends Disposable {\n constructor(semanticTokensStylingService, modelService, themeService, configurationService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this._watchers = Object.create(null);\n const register = (model) => {\n this._watchers[model.uri.toString()] = new ModelSemanticColoring(model, semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService);\n };\n const deregister = (model, modelSemanticColoring) => {\n modelSemanticColoring.dispose();\n delete this._watchers[model.uri.toString()];\n };\n const handleSettingOrThemeChange = () => {\n for (const model of modelService.getModels()) {\n const curr = this._watchers[model.uri.toString()];\n if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n if (!curr) {\n register(model);\n }\n }\n else {\n if (curr) {\n deregister(model, curr);\n }\n }\n }\n };\n modelService.getModels().forEach(model => {\n if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n register(model);\n }\n });\n this._register(modelService.onModelAdded((model) => {\n if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n register(model);\n }\n }));\n this._register(modelService.onModelRemoved((model) => {\n const curr = this._watchers[model.uri.toString()];\n if (curr) {\n deregister(model, curr);\n }\n }));\n this._register(configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n handleSettingOrThemeChange();\n }\n }));\n this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange));\n }\n dispose() {\n // Dispose all watchers\n for (const watcher of Object.values(this._watchers)) {\n watcher.dispose();\n }\n super.dispose();\n }\n};\nDocumentSemanticTokensFeature = __decorate([\n __param(0, ISemanticTokensStylingService),\n __param(1, IModelService),\n __param(2, IThemeService),\n __param(3, IConfigurationService),\n __param(4, ILanguageFeatureDebounceService),\n __param(5, ILanguageFeaturesService)\n], DocumentSemanticTokensFeature);\nexport { DocumentSemanticTokensFeature };\nlet ModelSemanticColoring = ModelSemanticColoring_1 = class ModelSemanticColoring extends Disposable {\n constructor(model, _semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this._semanticTokensStylingService = _semanticTokensStylingService;\n this._isDisposed = false;\n this._model = model;\n this._provider = languageFeaturesService.documentSemanticTokensProvider;\n this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentSemanticTokens', { min: ModelSemanticColoring_1.REQUEST_MIN_DELAY, max: ModelSemanticColoring_1.REQUEST_MAX_DELAY });\n this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring_1.REQUEST_MIN_DELAY));\n this._currentDocumentResponse = null;\n this._currentDocumentRequestCancellationTokenSource = null;\n this._documentProvidersChangeListeners = [];\n this._providersChangedDuringRequest = false;\n this._register(this._model.onDidChangeContent(() => {\n if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n }));\n this._register(this._model.onDidChangeAttached(() => {\n if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n }));\n this._register(this._model.onDidChangeLanguage(() => {\n // clear any outstanding state\n if (this._currentDocumentResponse) {\n this._currentDocumentResponse.dispose();\n this._currentDocumentResponse = null;\n }\n if (this._currentDocumentRequestCancellationTokenSource) {\n this._currentDocumentRequestCancellationTokenSource.cancel();\n this._currentDocumentRequestCancellationTokenSource = null;\n }\n this._setDocumentSemanticTokens(null, null, null, []);\n this._fetchDocumentSemanticTokens.schedule(0);\n }));\n const bindDocumentChangeListeners = () => {\n dispose(this._documentProvidersChangeListeners);\n this._documentProvidersChangeListeners = [];\n for (const provider of this._provider.all(model)) {\n if (typeof provider.onDidChange === 'function') {\n this._documentProvidersChangeListeners.push(provider.onDidChange(() => {\n if (this._currentDocumentRequestCancellationTokenSource) {\n // there is already a request running,\n this._providersChangedDuringRequest = true;\n return;\n }\n this._fetchDocumentSemanticTokens.schedule(0);\n }));\n }\n }\n };\n bindDocumentChangeListeners();\n this._register(this._provider.onDidChange(() => {\n bindDocumentChangeListeners();\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }));\n this._register(themeService.onDidColorThemeChange(_ => {\n // clear out existing tokens\n this._setDocumentSemanticTokens(null, null, null, []);\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }));\n this._fetchDocumentSemanticTokens.schedule(0);\n }\n dispose() {\n if (this._currentDocumentResponse) {\n this._currentDocumentResponse.dispose();\n this._currentDocumentResponse = null;\n }\n if (this._currentDocumentRequestCancellationTokenSource) {\n this._currentDocumentRequestCancellationTokenSource.cancel();\n this._currentDocumentRequestCancellationTokenSource = null;\n }\n dispose(this._documentProvidersChangeListeners);\n this._documentProvidersChangeListeners = [];\n this._setDocumentSemanticTokens(null, null, null, []);\n this._isDisposed = true;\n super.dispose();\n }\n _fetchDocumentSemanticTokensNow() {\n if (this._currentDocumentRequestCancellationTokenSource) {\n // there is already a request running, let it finish...\n return;\n }\n if (!hasDocumentSemanticTokensProvider(this._provider, this._model)) {\n // there is no provider\n if (this._currentDocumentResponse) {\n // there are semantic tokens set\n this._model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n if (!this._model.isAttachedToEditor()) {\n // this document is not visible, there is no need to fetch semantic tokens for it\n return;\n }\n const cancellationTokenSource = new CancellationTokenSource();\n const lastProvider = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null;\n const lastResultId = this._currentDocumentResponse ? this._currentDocumentResponse.resultId || null : null;\n const request = getDocumentSemanticTokens(this._provider, this._model, lastProvider, lastResultId, cancellationTokenSource.token);\n this._currentDocumentRequestCancellationTokenSource = cancellationTokenSource;\n this._providersChangedDuringRequest = false;\n const pendingChanges = [];\n const contentChangeListener = this._model.onDidChangeContent((e) => {\n pendingChanges.push(e);\n });\n const sw = new StopWatch(false);\n request.then((res) => {\n this._debounceInformation.update(this._model, sw.elapsed());\n this._currentDocumentRequestCancellationTokenSource = null;\n contentChangeListener.dispose();\n if (!res) {\n this._setDocumentSemanticTokens(null, null, null, pendingChanges);\n }\n else {\n const { provider, tokens } = res;\n const styling = this._semanticTokensStylingService.getStyling(provider);\n this._setDocumentSemanticTokens(provider, tokens || null, styling, pendingChanges);\n }\n }, (err) => {\n const isExpectedError = err && (errors.isCancellationError(err) || (typeof err.message === 'string' && err.message.indexOf('busy') !== -1));\n if (!isExpectedError) {\n errors.onUnexpectedError(err);\n }\n // Semantic tokens eats up all errors and considers errors to mean that the result is temporarily not available\n // The API does not have a special error kind to express this...\n this._currentDocumentRequestCancellationTokenSource = null;\n contentChangeListener.dispose();\n if (pendingChanges.length > 0 || this._providersChangedDuringRequest) {\n // More changes occurred while the request was running\n if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n }\n });\n }\n static _copy(src, srcOffset, dest, destOffset, length) {\n // protect against overflows\n length = Math.min(length, dest.length - destOffset, src.length - srcOffset);\n for (let i = 0; i < length; i++) {\n dest[destOffset + i] = src[srcOffset + i];\n }\n }\n _setDocumentSemanticTokens(provider, tokens, styling, pendingChanges) {\n const currentResponse = this._currentDocumentResponse;\n const rescheduleIfNeeded = () => {\n if ((pendingChanges.length > 0 || this._providersChangedDuringRequest) && !this._fetchDocumentSemanticTokens.isScheduled()) {\n this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n }\n };\n if (this._currentDocumentResponse) {\n this._currentDocumentResponse.dispose();\n this._currentDocumentResponse = null;\n }\n if (this._isDisposed) {\n // disposed!\n if (provider && tokens) {\n provider.releaseDocumentSemanticTokens(tokens.resultId);\n }\n return;\n }\n if (!provider || !styling) {\n this._model.tokenization.setSemanticTokens(null, false);\n return;\n }\n if (!tokens) {\n this._model.tokenization.setSemanticTokens(null, true);\n rescheduleIfNeeded();\n return;\n }\n if (isSemanticTokensEdits(tokens)) {\n if (!currentResponse) {\n // not possible!\n this._model.tokenization.setSemanticTokens(null, true);\n return;\n }\n if (tokens.edits.length === 0) {\n // nothing to do!\n tokens = {\n resultId: tokens.resultId,\n data: currentResponse.data\n };\n }\n else {\n let deltaLength = 0;\n for (const edit of tokens.edits) {\n deltaLength += (edit.data ? edit.data.length : 0) - edit.deleteCount;\n }\n const srcData = currentResponse.data;\n const destData = new Uint32Array(srcData.length + deltaLength);\n let srcLastStart = srcData.length;\n let destLastStart = destData.length;\n for (let i = tokens.edits.length - 1; i >= 0; i--) {\n const edit = tokens.edits[i];\n if (edit.start > srcData.length) {\n styling.warnInvalidEditStart(currentResponse.resultId, tokens.resultId, i, edit.start, srcData.length);\n // The edits are invalid and there's no way to recover\n this._model.tokenization.setSemanticTokens(null, true);\n return;\n }\n const copyCount = srcLastStart - (edit.start + edit.deleteCount);\n if (copyCount > 0) {\n ModelSemanticColoring_1._copy(srcData, srcLastStart - copyCount, destData, destLastStart - copyCount, copyCount);\n destLastStart -= copyCount;\n }\n if (edit.data) {\n ModelSemanticColoring_1._copy(edit.data, 0, destData, destLastStart - edit.data.length, edit.data.length);\n destLastStart -= edit.data.length;\n }\n srcLastStart = edit.start;\n }\n if (srcLastStart > 0) {\n ModelSemanticColoring_1._copy(srcData, 0, destData, 0, srcLastStart);\n }\n tokens = {\n resultId: tokens.resultId,\n data: destData\n };\n }\n }\n if (isSemanticTokens(tokens)) {\n this._currentDocumentResponse = new SemanticTokensResponse(provider, tokens.resultId, tokens.data);\n const result = toMultilineTokens2(tokens, styling, this._model.getLanguageId());\n // Adjust incoming semantic tokens\n if (pendingChanges.length > 0) {\n // More changes occurred while the request was running\n // We need to:\n // 1. Adjust incoming semantic tokens\n // 2. Request them again\n for (const change of pendingChanges) {\n for (const area of result) {\n for (const singleChange of change.changes) {\n area.applyEdit(singleChange.range, singleChange.text);\n }\n }\n }\n }\n this._model.tokenization.setSemanticTokens(result, true);\n }\n else {\n this._model.tokenization.setSemanticTokens(null, true);\n }\n rescheduleIfNeeded();\n }\n};\nModelSemanticColoring.REQUEST_MIN_DELAY = 300;\nModelSemanticColoring.REQUEST_MAX_DELAY = 2000;\nModelSemanticColoring = ModelSemanticColoring_1 = __decorate([\n __param(1, ISemanticTokensStylingService),\n __param(2, IThemeService),\n __param(3, ILanguageFeatureDebounceService),\n __param(4, ILanguageFeaturesService)\n], ModelSemanticColoring);\nclass SemanticTokensResponse {\n constructor(provider, resultId, data) {\n this.provider = provider;\n this.resultId = resultId;\n this.data = data;\n }\n dispose() {\n this.provider.releaseDocumentSemanticTokens(this.resultId);\n }\n}\nregisterEditorFeature(DocumentSemanticTokensFeature);\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 { createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { getDocumentRangeSemanticTokens, hasDocumentRangeSemanticTokensProvider } from '../common/getSemanticTokens.js';\nimport { isSemanticColoringEnabled, SEMANTIC_HIGHLIGHTING_SETTING_ID } from '../common/semanticTokensConfig.js';\nimport { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\nlet ViewportSemanticTokensContribution = class ViewportSemanticTokensContribution extends Disposable {\n constructor(editor, _semanticTokensStylingService, _themeService, _configurationService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this._semanticTokensStylingService = _semanticTokensStylingService;\n this._themeService = _themeService;\n this._configurationService = _configurationService;\n this._editor = editor;\n this._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n this._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n this._outstandingRequests = [];\n const scheduleTokenizeViewport = () => {\n if (this._editor.hasModel()) {\n this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n }\n };\n this._register(this._editor.onDidScrollChange(() => {\n scheduleTokenizeViewport();\n }));\n this._register(this._editor.onDidChangeModel(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._editor.onDidChangeModelContent((e) => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._provider.onDidChange(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n this._cancelAll();\n scheduleTokenizeViewport();\n }\n }));\n this._register(this._themeService.onDidColorThemeChange(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n scheduleTokenizeViewport();\n }\n _cancelAll() {\n for (const request of this._outstandingRequests) {\n request.cancel();\n }\n this._outstandingRequests = [];\n }\n _removeOutstandingRequest(req) {\n for (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n if (this._outstandingRequests[i] === req) {\n this._outstandingRequests.splice(i, 1);\n return;\n }\n }\n }\n _tokenizeViewportNow() {\n if (!this._editor.hasModel()) {\n return;\n }\n const model = this._editor.getModel();\n if (model.tokenization.hasCompleteSemanticTokens()) {\n return;\n }\n if (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n if (model.tokenization.hasSomeSemanticTokens()) {\n model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n if (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n if (model.tokenization.hasSomeSemanticTokens()) {\n model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n const visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n this._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n }\n _requestRange(model, range) {\n const requestVersionId = model.getVersionId();\n const request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n const sw = new StopWatch(false);\n request.then((r) => {\n this._debounceInformation.update(model, sw.elapsed());\n if (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n return;\n }\n const { provider, tokens: result } = r;\n const styling = this._semanticTokensStylingService.getStyling(provider);\n model.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n }).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n return request;\n }\n};\nViewportSemanticTokensContribution.ID = 'editor.contrib.viewportSemanticTokens';\nViewportSemanticTokensContribution = __decorate([\n __param(1, ISemanticTokensStylingService),\n __param(2, IThemeService),\n __param(3, IConfigurationService),\n __param(4, ILanguageFeatureDebounceService),\n __param(5, ILanguageFeaturesService)\n], ViewportSemanticTokensContribution);\nexport { ViewportSemanticTokensContribution };\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\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 { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { encodeSemanticTokensDto } from '../../../common/services/semanticTokensDto.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport function isSemanticTokens(v) {\n return v && !!(v.data);\n}\nexport function isSemanticTokensEdits(v) {\n return v && Array.isArray(v.edits);\n}\nexport class DocumentSemanticTokensResult {\n constructor(provider, tokens, error) {\n this.provider = provider;\n this.tokens = tokens;\n this.error = error;\n }\n}\nexport function hasDocumentSemanticTokensProvider(registry, model) {\n return registry.has(model);\n}\nfunction getDocumentSemanticTokensProviders(registry, model) {\n const groups = registry.orderedGroups(model);\n return (groups.length > 0 ? groups[0] : []);\n}\nexport async function getDocumentSemanticTokens(registry, model, lastProvider, lastResultId, token) {\n const providers = getDocumentSemanticTokensProviders(registry, model);\n // Get tokens from all providers at the same time.\n const results = await Promise.all(providers.map(async (provider) => {\n let result;\n let error = null;\n try {\n result = await provider.provideDocumentSemanticTokens(model, (provider === lastProvider ? lastResultId : null), token);\n }\n catch (err) {\n error = err;\n result = null;\n }\n if (!result || (!isSemanticTokens(result) && !isSemanticTokensEdits(result))) {\n result = null;\n }\n return new DocumentSemanticTokensResult(provider, result, error);\n }));\n // Try to return the first result with actual tokens or\n // the first result which threw an error (!!)\n for (const result of results) {\n if (result.error) {\n throw result.error;\n }\n if (result.tokens) {\n return result;\n }\n }\n // Return the first result, even if it doesn't have tokens\n if (results.length > 0) {\n return results[0];\n }\n return null;\n}\nfunction _getDocumentSemanticTokensProviderHighestGroup(registry, model) {\n const result = registry.orderedGroups(model);\n return (result.length > 0 ? result[0] : null);\n}\nclass DocumentRangeSemanticTokensResult {\n constructor(provider, tokens) {\n this.provider = provider;\n this.tokens = tokens;\n }\n}\nexport function hasDocumentRangeSemanticTokensProvider(providers, model) {\n return providers.has(model);\n}\nfunction getDocumentRangeSemanticTokensProviders(providers, model) {\n const groups = providers.orderedGroups(model);\n return (groups.length > 0 ? groups[0] : []);\n}\nexport async function getDocumentRangeSemanticTokens(registry, model, range, token) {\n const providers = getDocumentRangeSemanticTokensProviders(registry, model);\n // Get tokens from all providers at the same time.\n const results = await Promise.all(providers.map(async (provider) => {\n let result;\n try {\n result = await provider.provideDocumentRangeSemanticTokens(model, range, token);\n }\n catch (err) {\n onUnexpectedExternalError(err);\n result = null;\n }\n if (!result || !isSemanticTokens(result)) {\n result = null;\n }\n return new DocumentRangeSemanticTokensResult(provider, result);\n }));\n // Try to return the first result with actual tokens\n for (const result of results) {\n if (result.tokens) {\n return result;\n }\n }\n // Return the first result, even if it doesn't have tokens\n if (results.length > 0) {\n return results[0];\n }\n return null;\n}\nCommandsRegistry.registerCommand('_provideDocumentSemanticTokensLegend', async (accessor, ...args) => {\n const [uri] = args;\n assertType(uri instanceof URI);\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n const providers = _getDocumentSemanticTokensProviderHighestGroup(documentSemanticTokensProvider, model);\n if (!providers) {\n // there is no provider => fall back to a document range semantic tokens provider\n return accessor.get(ICommandService).executeCommand('_provideDocumentRangeSemanticTokensLegend', uri);\n }\n return providers[0].getLegend();\n});\nCommandsRegistry.registerCommand('_provideDocumentSemanticTokens', async (accessor, ...args) => {\n const [uri] = args;\n assertType(uri instanceof URI);\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n if (!hasDocumentSemanticTokensProvider(documentSemanticTokensProvider, model)) {\n // there is no provider => fall back to a document range semantic tokens provider\n return accessor.get(ICommandService).executeCommand('_provideDocumentRangeSemanticTokens', uri, model.getFullModelRange());\n }\n const r = await getDocumentSemanticTokens(documentSemanticTokensProvider, model, null, null, CancellationToken.None);\n if (!r) {\n return undefined;\n }\n const { provider, tokens } = r;\n if (!tokens || !isSemanticTokens(tokens)) {\n return undefined;\n }\n const buff = encodeSemanticTokensDto({\n id: 0,\n type: 'full',\n data: tokens.data\n });\n if (tokens.resultId) {\n provider.releaseDocumentSemanticTokens(tokens.resultId);\n }\n return buff;\n});\nCommandsRegistry.registerCommand('_provideDocumentRangeSemanticTokensLegend', async (accessor, ...args) => {\n const [uri, range] = args;\n assertType(uri instanceof URI);\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n const providers = getDocumentRangeSemanticTokensProviders(documentRangeSemanticTokensProvider, model);\n if (providers.length === 0) {\n // no providers\n return undefined;\n }\n if (providers.length === 1) {\n // straight forward case, just a single provider\n return providers[0].getLegend();\n }\n if (!range || !Range.isIRange(range)) {\n // if no range is provided, we cannot support multiple providers\n // as we cannot fall back to the one which would give results\n // => return the first legend for backwards compatibility and print a warning\n console.warn(`provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in`);\n return providers[0].getLegend();\n }\n const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range), CancellationToken.None);\n if (!result) {\n return undefined;\n }\n return result.provider.getLegend();\n});\nCommandsRegistry.registerCommand('_provideDocumentRangeSemanticTokens', async (accessor, ...args) => {\n const [uri, range] = args;\n assertType(uri instanceof URI);\n assertType(Range.isIRange(range));\n const model = accessor.get(IModelService).getModel(uri);\n if (!model) {\n return undefined;\n }\n const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range), CancellationToken.None);\n if (!result || !result.tokens) {\n // there is no provider or it didn't return tokens\n return undefined;\n }\n return encodeSemanticTokensDto({\n id: 0,\n type: 'full',\n data: result.tokens.data\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 *--------------------------------------------------------------------------------------------*/\nexport const SEMANTIC_HIGHLIGHTING_SETTING_ID = 'editor.semanticHighlighting';\nexport function isSemanticColoringEnabled(model, themeService, configurationService) {\n var _a;\n const setting = (_a = configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID, { overrideIdentifier: model.getLanguageId(), resource: model.uri })) === null || _a === void 0 ? void 0 : _a.enabled;\n if (typeof setting === 'boolean') {\n return setting;\n }\n return themeService.getColorTheme().semanticHighlighting;\n}\n"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","SectionHeaderDetector","constructor","editor","languageConfigurationService","editorWorkerService","super","this","decorations","createDecorationsCollection","options","createOptions","getOption","computePromise","currentOccurrences","_register","onDidChangeModel","e","stop","computeSectionHeaders","schedule","onDidChangeModelLanguage","onDidChange","_a","editorLanguageId","getModel","getLanguageId","affects","onDidChangeConfiguration","hasChanged","updateDecorations","onDidChangeModelContent","onDidChangeModelTokens","isScheduled","findSectionHeaders","minimap","hasModel","languageId","commentsConfiguration","getLanguageConfiguration","comments","foldingRules","markers","findMarkSectionHeaders","showMarkSectionHeaders","findRegionSectionHeaders","showRegionSectionHeaders","_b","model","isDisposed","isTooLargeForSyncing","modelVersionId","getVersionId","uri","then","sectionHeaders","filter","sectionHeader","shouldBeInComments","validRange","validateRange","range","tokens","tokenization","getLineTokens","startLineNumber","idx","findTokenIndexAtOffset","startColumn","tokenType","getStandardTokenType","oldDecorations","values","map","occurrence","decorationId","newDecorations","description","stickiness","collapseOnReplaceEdit","color","undefined","position","sectionHeaderStyle","hasSeparatorLine","sectionHeaderText","text","decoration","changeDecorations","changeAccessor","deltaDecorations","len","cancel","dispose","clear","ID","ModelSemanticColoring_1","DocumentSemanticTokensFeature","semanticTokensStylingService","modelService","themeService","configurationService","languageFeatureDebounceService","languageFeaturesService","_watchers","create","register","toString","ModelSemanticColoring","deregister","modelSemanticColoring","handleSettingOrThemeChange","getModels","curr","forEach","onModelAdded","onModelRemoved","affectsConfiguration","onDidColorThemeChange","watcher","_semanticTokensStylingService","_isDisposed","_model","_provider","documentSemanticTokensProvider","_debounceInformation","for","min","REQUEST_MIN_DELAY","max","REQUEST_MAX_DELAY","_fetchDocumentSemanticTokens","_fetchDocumentSemanticTokensNow","_currentDocumentResponse","_currentDocumentRequestCancellationTokenSource","_documentProvidersChangeListeners","_providersChangedDuringRequest","onDidChangeContent","get","onDidChangeAttached","onDidChangeLanguage","_setDocumentSemanticTokens","bindDocumentChangeListeners","provider","all","push","_","setSemanticTokens","isAttachedToEditor","cancellationTokenSource","lastProvider","lastResultId","resultId","request","token","pendingChanges","contentChangeListener","sw","res","update","elapsed","styling","getStyling","err","message","indexOf","_copy","src","srcOffset","dest","destOffset","Math","currentResponse","rescheduleIfNeeded","releaseDocumentSemanticTokens","edits","data","deltaLength","edit","deleteCount","srcData","destData","Uint32Array","srcLastStart","destLastStart","start","warnInvalidEditStart","copyCount","SemanticTokensResponse","result","change","area","singleChange","changes","applyEdit","ViewportSemanticTokensContribution","_themeService","_configurationService","_editor","documentRangeSemanticTokensProvider","_tokenizeViewport","_tokenizeViewportNow","_outstandingRequests","scheduleTokenizeViewport","onDidScrollChange","_cancelAll","_removeOutstandingRequest","req","splice","hasCompleteSemanticTokens","hasSomeSemanticTokens","visibleRanges","getVisibleRangesPlusViewportAboveBelow","concat","_requestRange","requestVersionId","Promise","resolve","setPartialSemanticTokens","isSemanticTokens","v","isSemanticTokensEdits","Array","isArray","DocumentSemanticTokensResult","error","hasDocumentSemanticTokensProvider","registry","has","async","getDocumentSemanticTokens","providers","groups","orderedGroups","getDocumentSemanticTokensProviders","results","provideDocumentSemanticTokens","DocumentRangeSemanticTokensResult","hasDocumentRangeSemanticTokensProvider","getDocumentRangeSemanticTokensProviders","getDocumentRangeSemanticTokens","provideDocumentRangeSemanticTokens","accessor","args","_getDocumentSemanticTokensProviderHighestGroup","getLegend","executeCommand","getFullModelRange","buff","id","type","console","warn","SEMANTIC_HIGHLIGHTING_SETTING_ID","isSemanticColoringEnabled","setting","getValue","overrideIdentifier","resource","enabled","getColorTheme","semanticHighlighting"],"sourceRoot":""}