monaco-editor-core 0.55.0-dev-20251024 → 0.55.0-dev-20251025
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.messages.cs.js +1 -1
- package/esm/nls.messages.de.js +1 -1
- package/esm/nls.messages.es.js +1 -1
- package/esm/nls.messages.fr.js +1 -1
- package/esm/nls.messages.it.js +1 -1
- package/esm/nls.messages.ja.js +1 -1
- package/esm/nls.messages.ko.js +1 -1
- package/esm/nls.messages.pl.js +1 -1
- package/esm/nls.messages.pt-br.js +1 -1
- package/esm/nls.messages.ru.js +1 -1
- package/esm/nls.messages.tr.js +1 -1
- package/esm/nls.messages.zh-cn.js +1 -1
- package/esm/nls.messages.zh-tw.js +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/highlightedlabel/highlightedLabel.js +6 -7
- package/esm/vs/base/browser/ui/highlightedlabel/highlightedLabel.js.map +1 -1
- package/esm/vs/base/browser/ui/iconLabel/iconLabel.js +11 -6
- package/esm/vs/base/browser/ui/iconLabel/iconLabel.js.map +1 -1
- package/esm/vs/base/browser/ui/iconLabel/iconlabel.css +5 -2
- package/esm/vs/base/common/codiconsLibrary.js +3 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/editor/common/languages.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +13 -9
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +4 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +13 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js +2 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
- package/esm/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js +28 -1
- package/esm/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +1 -0
- package/monaco.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.ts","vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.ts"],"names":[],"mappings":"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","file":"viewportSemanticTokens.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","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 *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { ITextModel } from '../../../common/model.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 { IFeatureDebounceInformation, ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { DocumentRangeSemanticTokensProvider } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\n\nexport class ViewportSemanticTokensContribution extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.viewportSemanticTokens';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _provider: LanguageFeatureRegistry<DocumentRangeSemanticTokensProvider>;\n\tprivate readonly _debounceInformation: IFeatureDebounceInformation;\n\tprivate readonly _tokenizeViewport: RunOnceScheduler;\n\tprivate _outstandingRequests: CancelablePromise<any>[];\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@ISemanticTokensStylingService private readonly _semanticTokensStylingService: ISemanticTokensStylingService,\n\t\t@IThemeService private readonly _themeService: IThemeService,\n\t\t@IConfigurationService private readonly _configurationService: IConfigurationService,\n\t\t@ILanguageFeatureDebounceService languageFeatureDebounceService: ILanguageFeatureDebounceService,\n\t\t@ILanguageFeaturesService languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tsuper();\n\t\tthis._editor = editor;\n\t\tthis._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n\t\tthis._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n\t\tthis._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n\t\tthis._outstandingRequests = [];\n\t\tconst scheduleTokenizeViewport = () => {\n\t\t\tif (this._editor.hasModel()) {\n\t\t\t\tthis._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n\t\t\t}\n\t\t};\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent((e) => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._provider.onDidChange(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n\t\t\t\tthis._cancelAll();\n\t\t\t\tscheduleTokenizeViewport();\n\t\t\t}\n\t\t}));\n\t\tthis._register(this._themeService.onDidColorThemeChange(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tscheduleTokenizeViewport();\n\t}\n\n\tprivate _cancelAll(): void {\n\t\tfor (const request of this._outstandingRequests) {\n\t\t\trequest.cancel();\n\t\t}\n\t\tthis._outstandingRequests = [];\n\t}\n\n\tprivate _removeOutstandingRequest(req: CancelablePromise<any>): void {\n\t\tfor (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n\t\t\tif (this._outstandingRequests[i] === req) {\n\t\t\t\tthis._outstandingRequests.splice(i, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _tokenizeViewportNow(): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (model.tokenization.hasCompleteSemanticTokens()) {\n\t\t\treturn;\n\t\t}\n\t\tif (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n\n\t\tthis._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n\t}\n\n\tprivate _requestRange(model: ITextModel, range: Range): CancelablePromise<any> {\n\t\tconst requestVersionId = model.getVersionId();\n\t\tconst request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n\t\tconst sw = new StopWatch(false);\n\t\trequest.then((r) => {\n\t\t\tthis._debounceInformation.update(model, sw.elapsed());\n\t\t\tif (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { provider, tokens: result } = r;\n\t\t\tconst styling = this._semanticTokensStylingService.getStyling(provider);\n\t\t\tmodel.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n\t\t}).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n\t\treturn request;\n\t}\n}\n\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, 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 *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { ITextModel } from '../../../common/model.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 { IFeatureDebounceInformation, ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { DocumentRangeSemanticTokensProvider } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\n\nexport class ViewportSemanticTokensContribution extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.viewportSemanticTokens';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _provider: LanguageFeatureRegistry<DocumentRangeSemanticTokensProvider>;\n\tprivate readonly _debounceInformation: IFeatureDebounceInformation;\n\tprivate readonly _tokenizeViewport: RunOnceScheduler;\n\tprivate _outstandingRequests: CancelablePromise<any>[];\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@ISemanticTokensStylingService private readonly _semanticTokensStylingService: ISemanticTokensStylingService,\n\t\t@IThemeService private readonly _themeService: IThemeService,\n\t\t@IConfigurationService private readonly _configurationService: IConfigurationService,\n\t\t@ILanguageFeatureDebounceService languageFeatureDebounceService: ILanguageFeatureDebounceService,\n\t\t@ILanguageFeaturesService languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tsuper();\n\t\tthis._editor = editor;\n\t\tthis._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n\t\tthis._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n\t\tthis._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n\t\tthis._outstandingRequests = [];\n\t\tconst scheduleTokenizeViewport = () => {\n\t\t\tif (this._editor.hasModel()) {\n\t\t\t\tthis._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n\t\t\t}\n\t\t};\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent((e) => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._provider.onDidChange(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n\t\t\t\tthis._cancelAll();\n\t\t\t\tscheduleTokenizeViewport();\n\t\t\t}\n\t\t}));\n\t\tthis._register(this._themeService.onDidColorThemeChange(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tscheduleTokenizeViewport();\n\t}\n\n\tprivate _cancelAll(): void {\n\t\tfor (const request of this._outstandingRequests) {\n\t\t\trequest.cancel();\n\t\t}\n\t\tthis._outstandingRequests = [];\n\t}\n\n\tprivate _removeOutstandingRequest(req: CancelablePromise<any>): void {\n\t\tfor (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n\t\t\tif (this._outstandingRequests[i] === req) {\n\t\t\t\tthis._outstandingRequests.splice(i, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _tokenizeViewportNow(): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (model.tokenization.hasCompleteSemanticTokens()) {\n\t\t\treturn;\n\t\t}\n\t\tif (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n\n\t\tthis._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n\t}\n\n\tprivate _requestRange(model: ITextModel, range: Range): CancelablePromise<any> {\n\t\tconst requestVersionId = model.getVersionId();\n\t\tconst request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n\t\tconst sw = new StopWatch(false);\n\t\trequest.then((r) => {\n\t\t\tthis._debounceInformation.update(model, sw.elapsed());\n\t\t\tif (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { provider, tokens: result } = r;\n\t\t\tconst styling = this._semanticTokensStylingService.getStyling(provider);\n\t\t\tmodel.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n\t\t}).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n\t\treturn request;\n\t}\n}\n\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, EditorContributionInstantiation.AfterFirstRender);\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.ts","vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.ts"],"names":[],"mappings":"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","file":"viewportSemanticTokens.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","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 *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable, dispose, IDisposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { ITextModel } from '../../../common/model.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 { IFeatureDebounceInformation, ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { DocumentRangeSemanticTokensProvider } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\n\nexport class ViewportSemanticTokensContribution extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.viewportSemanticTokens';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _provider: LanguageFeatureRegistry<DocumentRangeSemanticTokensProvider>;\n\tprivate readonly _debounceInformation: IFeatureDebounceInformation;\n\tprivate readonly _tokenizeViewport: RunOnceScheduler;\n\tprivate _outstandingRequests: CancelablePromise<any>[];\n\tprivate _rangeProvidersChangeListeners: IDisposable[];\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@ISemanticTokensStylingService private readonly _semanticTokensStylingService: ISemanticTokensStylingService,\n\t\t@IThemeService private readonly _themeService: IThemeService,\n\t\t@IConfigurationService private readonly _configurationService: IConfigurationService,\n\t\t@ILanguageFeatureDebounceService languageFeatureDebounceService: ILanguageFeatureDebounceService,\n\t\t@ILanguageFeaturesService languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tsuper();\n\t\tthis._editor = editor;\n\t\tthis._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n\t\tthis._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n\t\tthis._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n\t\tthis._outstandingRequests = [];\n\t\tthis._rangeProvidersChangeListeners = [];\n\t\tconst scheduleTokenizeViewport = () => {\n\t\t\tif (this._editor.hasModel()) {\n\t\t\t\tthis._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n\t\t\t}\n\t\t};\n\t\tconst bindRangeProvidersChangeListeners = () => {\n\t\t\tthis._cleanupProviderListeners();\n\t\t\tif (this._editor.hasModel()) {\n\t\t\t\tconst model = this._editor.getModel();\n\t\t\t\tfor (const provider of this._provider.all(model)) {\n\t\t\t\t\tconst disposable = provider.onDidChange?.(() => {\n\t\t\t\t\t\tthis._cancelAll();\n\t\t\t\t\t\tscheduleTokenizeViewport();\n\t\t\t\t\t});\n\t\t\t\t\tif (disposable) {\n\t\t\t\t\t\tthis._rangeProvidersChangeListeners.push(disposable);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tbindRangeProvidersChangeListeners();\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent((e) => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\n\t\tbindRangeProvidersChangeListeners();\n\t\tthis._register(this._provider.onDidChange(() => {\n\t\t\tbindRangeProvidersChangeListeners();\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n\t\t\t\tthis._cancelAll();\n\t\t\t\tscheduleTokenizeViewport();\n\t\t\t}\n\t\t}));\n\t\tthis._register(this._themeService.onDidColorThemeChange(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tscheduleTokenizeViewport();\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._cleanupProviderListeners();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _cleanupProviderListeners(): void {\n\t\tdispose(this._rangeProvidersChangeListeners);\n\t\tthis._rangeProvidersChangeListeners = [];\n\t}\n\n\tprivate _cancelAll(): void {\n\t\tfor (const request of this._outstandingRequests) {\n\t\t\trequest.cancel();\n\t\t}\n\t\tthis._outstandingRequests = [];\n\t}\n\n\tprivate _removeOutstandingRequest(req: CancelablePromise<any>): void {\n\t\tfor (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n\t\t\tif (this._outstandingRequests[i] === req) {\n\t\t\t\tthis._outstandingRequests.splice(i, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _tokenizeViewportNow(): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (model.tokenization.hasCompleteSemanticTokens()) {\n\t\t\treturn;\n\t\t}\n\t\tif (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n\n\t\tthis._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n\t}\n\n\tprivate _requestRange(model: ITextModel, range: Range): CancelablePromise<any> {\n\t\tconst requestVersionId = model.getVersionId();\n\t\tconst request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n\t\tconst sw = new StopWatch(false);\n\t\trequest.then((r) => {\n\t\t\tthis._debounceInformation.update(model, sw.elapsed());\n\t\t\tif (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { provider, tokens: result } = r;\n\t\t\tconst styling = this._semanticTokensStylingService.getStyling(provider);\n\t\t\tmodel.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n\t\t}).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n\t\treturn request;\n\t}\n}\n\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, 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 *--------------------------------------------------------------------------------------------*/\n\nimport { CancelablePromise, createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable, dispose, IDisposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IEditorContribution } from '../../../common/editorCommon.js';\nimport { ITextModel } from '../../../common/model.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 { IFeatureDebounceInformation, ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { LanguageFeatureRegistry } from '../../../common/languageFeatureRegistry.js';\nimport { DocumentRangeSemanticTokensProvider } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\n\nexport class ViewportSemanticTokensContribution extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.viewportSemanticTokens';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _provider: LanguageFeatureRegistry<DocumentRangeSemanticTokensProvider>;\n\tprivate readonly _debounceInformation: IFeatureDebounceInformation;\n\tprivate readonly _tokenizeViewport: RunOnceScheduler;\n\tprivate _outstandingRequests: CancelablePromise<any>[];\n\tprivate _rangeProvidersChangeListeners: IDisposable[];\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@ISemanticTokensStylingService private readonly _semanticTokensStylingService: ISemanticTokensStylingService,\n\t\t@IThemeService private readonly _themeService: IThemeService,\n\t\t@IConfigurationService private readonly _configurationService: IConfigurationService,\n\t\t@ILanguageFeatureDebounceService languageFeatureDebounceService: ILanguageFeatureDebounceService,\n\t\t@ILanguageFeaturesService languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tsuper();\n\t\tthis._editor = editor;\n\t\tthis._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n\t\tthis._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n\t\tthis._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n\t\tthis._outstandingRequests = [];\n\t\tthis._rangeProvidersChangeListeners = [];\n\t\tconst scheduleTokenizeViewport = () => {\n\t\t\tif (this._editor.hasModel()) {\n\t\t\t\tthis._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n\t\t\t}\n\t\t};\n\t\tconst bindRangeProvidersChangeListeners = () => {\n\t\t\tthis._cleanupProviderListeners();\n\t\t\tif (this._editor.hasModel()) {\n\t\t\t\tconst model = this._editor.getModel();\n\t\t\t\tfor (const provider of this._provider.all(model)) {\n\t\t\t\t\tconst disposable = provider.onDidChange?.(() => {\n\t\t\t\t\t\tthis._cancelAll();\n\t\t\t\t\t\tscheduleTokenizeViewport();\n\t\t\t\t\t});\n\t\t\t\t\tif (disposable) {\n\t\t\t\t\t\tthis._rangeProvidersChangeListeners.push(disposable);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tthis._register(this._editor.onDidScrollChange(() => {\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModel(() => {\n\t\t\tbindRangeProvidersChangeListeners();\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._editor.onDidChangeModelContent((e) => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\n\t\tbindRangeProvidersChangeListeners();\n\t\tthis._register(this._provider.onDidChange(() => {\n\t\t\tbindRangeProvidersChangeListeners();\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tthis._register(this._configurationService.onDidChangeConfiguration(e => {\n\t\t\tif (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n\t\t\t\tthis._cancelAll();\n\t\t\t\tscheduleTokenizeViewport();\n\t\t\t}\n\t\t}));\n\t\tthis._register(this._themeService.onDidColorThemeChange(() => {\n\t\t\tthis._cancelAll();\n\t\t\tscheduleTokenizeViewport();\n\t\t}));\n\t\tscheduleTokenizeViewport();\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._cleanupProviderListeners();\n\t\tsuper.dispose();\n\t}\n\n\tprivate _cleanupProviderListeners(): void {\n\t\tdispose(this._rangeProvidersChangeListeners);\n\t\tthis._rangeProvidersChangeListeners = [];\n\t}\n\n\tprivate _cancelAll(): void {\n\t\tfor (const request of this._outstandingRequests) {\n\t\t\trequest.cancel();\n\t\t}\n\t\tthis._outstandingRequests = [];\n\t}\n\n\tprivate _removeOutstandingRequest(req: CancelablePromise<any>): void {\n\t\tfor (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n\t\t\tif (this._outstandingRequests[i] === req) {\n\t\t\t\tthis._outstandingRequests.splice(i, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _tokenizeViewportNow(): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\t\tconst model = this._editor.getModel();\n\t\tif (model.tokenization.hasCompleteSemanticTokens()) {\n\t\t\treturn;\n\t\t}\n\t\tif (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n\t\t\tif (model.tokenization.hasSomeSemanticTokens()) {\n\t\t\t\tmodel.tokenization.setSemanticTokens(null, false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n\n\t\tthis._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n\t}\n\n\tprivate _requestRange(model: ITextModel, range: Range): CancelablePromise<any> {\n\t\tconst requestVersionId = model.getVersionId();\n\t\tconst request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n\t\tconst sw = new StopWatch(false);\n\t\trequest.then((r) => {\n\t\t\tthis._debounceInformation.update(model, sw.elapsed());\n\t\t\tif (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { provider, tokens: result } = r;\n\t\t\tconst styling = this._semanticTokensStylingService.getStyling(provider);\n\t\t\tmodel.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n\t\t}).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n\t\treturn request;\n\t}\n}\n\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, EditorContributionInstantiation.AfterFirstRender);\n"]}
|
package/monaco.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monaco-editor-core",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.55.0-dev-
|
|
4
|
+
"version": "0.55.0-dev-20251025",
|
|
5
5
|
"description": "A browser based code editor",
|
|
6
6
|
"author": "Microsoft Corporation",
|
|
7
7
|
"license": "MIT",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"bugs": {
|
|
15
15
|
"url": "https://github.com/microsoft/vscode/issues"
|
|
16
16
|
},
|
|
17
|
-
"vscodeCommitId": "
|
|
17
|
+
"vscodeCommitId": "ebec808605d890e079c52c6996c95be7cc94605e",
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"marked": "14.0.0",
|
|
20
20
|
"dompurify": "3.2.7"
|