@codingame/monaco-vscode-extensions-service-override 3.2.3 → 4.1.0

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.
Files changed (108) hide show
  1. package/extensions.js +6 -87
  2. package/override/vs/platform/dialogs/common/dialogs.js +2 -0
  3. package/package.json +9 -9
  4. package/_virtual/semver.js +0 -3
  5. package/external/vscode-semver/semver.js +0 -985
  6. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +0 -8
  7. package/vscode/src/vs/base/common/console.js +0 -59
  8. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +0 -497
  9. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +0 -44
  10. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +0 -27
  11. package/vscode/src/vs/platform/remote/common/managedSocket.js +0 -98
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +0 -31
  13. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +0 -35
  14. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +0 -227
  15. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +0 -68
  16. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +0 -103
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +0 -83
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +0 -203
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatProvider.js +0 -201
  20. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +0 -41
  21. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +0 -24
  22. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +0 -107
  23. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +0 -98
  24. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +0 -545
  25. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +0 -80
  26. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +0 -35
  27. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +0 -578
  28. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +0 -424
  29. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +0 -102
  30. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +0 -69
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +0 -68
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +0 -79
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +0 -253
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +0 -370
  35. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +0 -22
  36. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +0 -41
  37. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +0 -414
  38. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +0 -482
  39. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +0 -227
  40. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +0 -24
  41. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +0 -317
  42. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +0 -208
  43. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +0 -374
  44. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -72
  45. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +0 -28
  46. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +0 -50
  47. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +0 -27
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +0 -991
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +0 -78
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +0 -35
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +0 -78
  52. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +0 -93
  53. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +0 -137
  54. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +0 -194
  55. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +0 -123
  56. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +0 -188
  57. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +0 -129
  58. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +0 -131
  59. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +0 -374
  60. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +0 -25
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +0 -48
  62. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +0 -76
  63. package/vscode/src/vs/workbench/api/browser/mainThreadProfilContentHandlers.js +0 -38
  64. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +0 -68
  65. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +0 -42
  66. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +0 -185
  67. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +0 -30
  68. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +0 -493
  69. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +0 -49
  70. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +0 -146
  71. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +0 -70
  72. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +0 -50
  73. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +0 -99
  74. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +0 -53
  75. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +0 -72
  76. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +0 -731
  77. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +0 -53
  78. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +0 -408
  79. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +0 -195
  80. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +0 -24
  81. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +0 -55
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +0 -312
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +0 -223
  84. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +0 -110
  85. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +0 -61
  86. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +0 -29
  87. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +0 -283
  88. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +0 -100
  89. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +0 -135
  90. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +0 -57
  91. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +0 -268
  92. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +0 -35
  93. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +0 -73
  94. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +0 -83
  95. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +0 -284
  96. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +0 -276
  97. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +0 -52
  98. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +0 -1138
  99. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +0 -41
  100. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +0 -25
  101. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +0 -512
  102. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +0 -274
  103. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +0 -58
  104. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +0 -80
  105. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +0 -64
  106. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +0 -161
  107. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +0 -49
  108. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +0 -222
@@ -1,991 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { VSDataTransfer, createStringDataTransferItem } from 'vscode/vscode/vs/base/common/dataTransfer';
3
- import { CancellationError } from 'vscode/vscode/vs/base/common/errors';
4
- import { Emitter } from 'vscode/vscode/vs/base/common/event';
5
- import { Disposable, DisposableMap, combinedDisposable, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
6
- import { revive } from 'vscode/vscode/vs/base/common/marshalling';
7
- import { mixin } from 'vscode/vscode/vs/base/common/objects';
8
- import { URI } from 'vscode/vscode/vs/base/common/uri';
9
- import { ILanguageService } from 'vscode/vscode/vs/editor/common/languages/language';
10
- import { ILanguageConfigurationService } from 'vscode/vscode/vs/editor/common/languages/languageConfigurationRegistry';
11
- import { ILanguageFeaturesService } from 'vscode/vscode/vs/editor/common/services/languageFeatures';
12
- import { decodeSemanticTokensDto } from 'vscode/vscode/vs/editor/common/services/semanticTokensDto';
13
- import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
14
- import { reviveWorkspaceEditDto } from './mainThreadBulkEdits.js';
15
- import { DataTransfer } from 'vscode/vscode/vs/workbench/api/common/extHostTypeConverters';
16
- import { DataTransferFileCache } from '../common/shared/dataTransferCache.js';
17
- import { CallHierarchyProviderRegistry } from 'vscode/vscode/vs/workbench/contrib/callHierarchy/common/callHierarchy';
18
- import { WorkspaceSymbolProviderRegistry } from 'vscode/vscode/vs/workbench/contrib/search/common/search';
19
- import { TypeHierarchyProviderRegistry } from 'vscode/vscode/vs/workbench/contrib/typeHierarchy/common/typeHierarchy';
20
- import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
21
- import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
22
- import { ResourceMap } from 'vscode/vscode/vs/base/common/map';
23
- import { isFalsyOrEmpty } from 'vscode/vscode/vs/base/common/arrays';
24
-
25
- var MainThreadLanguageFeatures_1;
26
- let MainThreadLanguageFeatures = MainThreadLanguageFeatures_1 = class MainThreadLanguageFeatures extends Disposable {
27
- constructor(extHostContext, _languageService, _languageConfigurationService, _languageFeaturesService, _uriIdentService) {
28
- super();
29
- this._languageService = _languageService;
30
- this._languageConfigurationService = _languageConfigurationService;
31
- this._languageFeaturesService = _languageFeaturesService;
32
- this._uriIdentService = _uriIdentService;
33
- this._registrations = this._register(( new DisposableMap()));
34
- this._pasteEditProviders = ( new Map());
35
- this._documentOnDropEditProviders = ( new Map());
36
- this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostLanguageFeatures));
37
- if (this._languageService) {
38
- const updateAllWordDefinitions = () => {
39
- const wordDefinitionDtos = [];
40
- for (const languageId of _languageService.getRegisteredLanguageIds()) {
41
- const wordDefinition = this._languageConfigurationService.getLanguageConfiguration(languageId).getWordDefinition();
42
- wordDefinitionDtos.push({
43
- languageId: languageId,
44
- regexSource: wordDefinition.source,
45
- regexFlags: wordDefinition.flags
46
- });
47
- }
48
- this._proxy.$setWordDefinitions(wordDefinitionDtos);
49
- };
50
- this._languageConfigurationService.onDidChange((e) => {
51
- if (!e.languageId) {
52
- updateAllWordDefinitions();
53
- }
54
- else {
55
- const wordDefinition = this._languageConfigurationService.getLanguageConfiguration(e.languageId).getWordDefinition();
56
- this._proxy.$setWordDefinitions([{
57
- languageId: e.languageId,
58
- regexSource: wordDefinition.source,
59
- regexFlags: wordDefinition.flags
60
- }]);
61
- }
62
- });
63
- updateAllWordDefinitions();
64
- }
65
- }
66
- $unregister(handle) {
67
- this._registrations.deleteAndDispose(handle);
68
- }
69
- static _reviveLocationDto(data) {
70
- if (!data) {
71
- return data;
72
- }
73
- else if (Array.isArray(data)) {
74
- data.forEach(l => MainThreadLanguageFeatures_1._reviveLocationDto(l));
75
- return data;
76
- }
77
- else {
78
- data.uri = URI.revive(data.uri);
79
- return data;
80
- }
81
- }
82
- static _reviveLocationLinkDto(data) {
83
- if (!data) {
84
- return data;
85
- }
86
- else if (Array.isArray(data)) {
87
- data.forEach(l => MainThreadLanguageFeatures_1._reviveLocationLinkDto(l));
88
- return data;
89
- }
90
- else {
91
- data.uri = URI.revive(data.uri);
92
- return data;
93
- }
94
- }
95
- static _reviveWorkspaceSymbolDto(data) {
96
- if (!data) {
97
- return data;
98
- }
99
- else if (Array.isArray(data)) {
100
- data.forEach(MainThreadLanguageFeatures_1._reviveWorkspaceSymbolDto);
101
- return data;
102
- }
103
- else {
104
- data.location = MainThreadLanguageFeatures_1._reviveLocationDto(data.location);
105
- return data;
106
- }
107
- }
108
- static _reviveCodeActionDto(data, uriIdentService) {
109
- data?.forEach(code => reviveWorkspaceEditDto(code.edit, uriIdentService));
110
- return data;
111
- }
112
- static _reviveLinkDTO(data) {
113
- if (data.url && typeof data.url !== 'string') {
114
- data.url = URI.revive(data.url);
115
- }
116
- return data;
117
- }
118
- static _reviveCallHierarchyItemDto(data) {
119
- if (data) {
120
- data.uri = URI.revive(data.uri);
121
- }
122
- return data;
123
- }
124
- static _reviveTypeHierarchyItemDto(data) {
125
- if (data) {
126
- data.uri = URI.revive(data.uri);
127
- }
128
- return data;
129
- }
130
- $registerDocumentSymbolProvider(handle, selector, displayName) {
131
- this._registrations.set(handle, this._languageFeaturesService.documentSymbolProvider.register(selector, {
132
- displayName,
133
- provideDocumentSymbols: (model, token) => {
134
- return this._proxy.$provideDocumentSymbols(handle, model.uri, token);
135
- }
136
- }));
137
- }
138
- $registerCodeLensSupport(handle, selector, eventHandle) {
139
- const provider = {
140
- provideCodeLenses: async (model, token) => {
141
- const listDto = await this._proxy.$provideCodeLenses(handle, model.uri, token);
142
- if (!listDto) {
143
- return undefined;
144
- }
145
- return {
146
- lenses: listDto.lenses,
147
- dispose: () => listDto.cacheId && this._proxy.$releaseCodeLenses(handle, listDto.cacheId)
148
- };
149
- },
150
- resolveCodeLens: async (model, codeLens, token) => {
151
- const result = await this._proxy.$resolveCodeLens(handle, codeLens, token);
152
- if (!result) {
153
- return undefined;
154
- }
155
- return {
156
- ...result,
157
- range: model.validateRange(result.range),
158
- };
159
- }
160
- };
161
- if (typeof eventHandle === 'number') {
162
- const emitter = ( new Emitter());
163
- this._registrations.set(eventHandle, emitter);
164
- provider.onDidChange = emitter.event;
165
- }
166
- this._registrations.set(handle, this._languageFeaturesService.codeLensProvider.register(selector, provider));
167
- }
168
- $emitCodeLensEvent(eventHandle, event) {
169
- const obj = this._registrations.get(eventHandle);
170
- if (obj instanceof Emitter) {
171
- obj.fire(event);
172
- }
173
- }
174
- $registerDefinitionSupport(handle, selector) {
175
- this._registrations.set(handle, this._languageFeaturesService.definitionProvider.register(selector, {
176
- provideDefinition: (model, position, token) => {
177
- return this._proxy.$provideDefinition(handle, model.uri, position, token).then(MainThreadLanguageFeatures_1._reviveLocationLinkDto);
178
- }
179
- }));
180
- }
181
- $registerDeclarationSupport(handle, selector) {
182
- this._registrations.set(handle, this._languageFeaturesService.declarationProvider.register(selector, {
183
- provideDeclaration: (model, position, token) => {
184
- return this._proxy.$provideDeclaration(handle, model.uri, position, token).then(MainThreadLanguageFeatures_1._reviveLocationLinkDto);
185
- }
186
- }));
187
- }
188
- $registerImplementationSupport(handle, selector) {
189
- this._registrations.set(handle, this._languageFeaturesService.implementationProvider.register(selector, {
190
- provideImplementation: (model, position, token) => {
191
- return this._proxy.$provideImplementation(handle, model.uri, position, token).then(MainThreadLanguageFeatures_1._reviveLocationLinkDto);
192
- }
193
- }));
194
- }
195
- $registerTypeDefinitionSupport(handle, selector) {
196
- this._registrations.set(handle, this._languageFeaturesService.typeDefinitionProvider.register(selector, {
197
- provideTypeDefinition: (model, position, token) => {
198
- return this._proxy.$provideTypeDefinition(handle, model.uri, position, token).then(MainThreadLanguageFeatures_1._reviveLocationLinkDto);
199
- }
200
- }));
201
- }
202
- $registerHoverProvider(handle, selector) {
203
- this._registrations.set(handle, this._languageFeaturesService.hoverProvider.register(selector, {
204
- provideHover: (model, position, token) => {
205
- return this._proxy.$provideHover(handle, model.uri, position, token);
206
- }
207
- }));
208
- }
209
- $registerEvaluatableExpressionProvider(handle, selector) {
210
- this._registrations.set(handle, this._languageFeaturesService.evaluatableExpressionProvider.register(selector, {
211
- provideEvaluatableExpression: (model, position, token) => {
212
- return this._proxy.$provideEvaluatableExpression(handle, model.uri, position, token);
213
- }
214
- }));
215
- }
216
- $registerInlineValuesProvider(handle, selector, eventHandle) {
217
- const provider = {
218
- provideInlineValues: (model, viewPort, context, token) => {
219
- return this._proxy.$provideInlineValues(handle, model.uri, viewPort, context, token);
220
- }
221
- };
222
- if (typeof eventHandle === 'number') {
223
- const emitter = ( new Emitter());
224
- this._registrations.set(eventHandle, emitter);
225
- provider.onDidChangeInlineValues = emitter.event;
226
- }
227
- this._registrations.set(handle, this._languageFeaturesService.inlineValuesProvider.register(selector, provider));
228
- }
229
- $emitInlineValuesEvent(eventHandle, event) {
230
- const obj = this._registrations.get(eventHandle);
231
- if (obj instanceof Emitter) {
232
- obj.fire(event);
233
- }
234
- }
235
- $registerDocumentHighlightProvider(handle, selector) {
236
- this._registrations.set(handle, this._languageFeaturesService.documentHighlightProvider.register(selector, {
237
- provideDocumentHighlights: (model, position, token) => {
238
- return this._proxy.$provideDocumentHighlights(handle, model.uri, position, token);
239
- }
240
- }));
241
- }
242
- $registerMultiDocumentHighlightProvider(handle, selector) {
243
- this._registrations.set(handle, this._languageFeaturesService.multiDocumentHighlightProvider.register(selector, {
244
- selector: selector,
245
- provideMultiDocumentHighlights: (model, position, otherModels, token) => {
246
- return this._proxy.$provideMultiDocumentHighlights(handle, model.uri, position, ( otherModels.map(model => model.uri)), token).then(dto => {
247
- if (isFalsyOrEmpty(dto)) {
248
- return undefined;
249
- }
250
- const result = ( new ResourceMap());
251
- dto?.forEach(value => {
252
- const uri = URI.revive(value.uri);
253
- if (( result.has(uri))) {
254
- result.get(uri).push(...value.highlights);
255
- }
256
- else {
257
- result.set(uri, value.highlights);
258
- }
259
- });
260
- return result;
261
- });
262
- }
263
- }));
264
- }
265
- $registerLinkedEditingRangeProvider(handle, selector) {
266
- this._registrations.set(handle, this._languageFeaturesService.linkedEditingRangeProvider.register(selector, {
267
- provideLinkedEditingRanges: async (model, position, token) => {
268
- const res = await this._proxy.$provideLinkedEditingRanges(handle, model.uri, position, token);
269
- if (res) {
270
- return {
271
- ranges: res.ranges,
272
- wordPattern: res.wordPattern ? MainThreadLanguageFeatures_1._reviveRegExp(res.wordPattern) : undefined
273
- };
274
- }
275
- return undefined;
276
- }
277
- }));
278
- }
279
- $registerReferenceSupport(handle, selector) {
280
- this._registrations.set(handle, this._languageFeaturesService.referenceProvider.register(selector, {
281
- provideReferences: (model, position, context, token) => {
282
- return this._proxy.$provideReferences(handle, model.uri, position, context, token).then(MainThreadLanguageFeatures_1._reviveLocationDto);
283
- }
284
- }));
285
- }
286
- $registerQuickFixSupport(handle, selector, metadata, displayName, supportsResolve) {
287
- const provider = {
288
- provideCodeActions: async (model, rangeOrSelection, context, token) => {
289
- const listDto = await this._proxy.$provideCodeActions(handle, model.uri, rangeOrSelection, context, token);
290
- if (!listDto) {
291
- return undefined;
292
- }
293
- return {
294
- actions: MainThreadLanguageFeatures_1._reviveCodeActionDto(listDto.actions, this._uriIdentService),
295
- dispose: () => {
296
- if (typeof listDto.cacheId === 'number') {
297
- this._proxy.$releaseCodeActions(handle, listDto.cacheId);
298
- }
299
- }
300
- };
301
- },
302
- providedCodeActionKinds: metadata.providedKinds,
303
- documentation: metadata.documentation,
304
- displayName
305
- };
306
- if (supportsResolve) {
307
- provider.resolveCodeAction = async (codeAction, token) => {
308
- const resolved = await this._proxy.$resolveCodeAction(handle, codeAction.cacheId, token);
309
- if (resolved.edit) {
310
- codeAction.edit = reviveWorkspaceEditDto(resolved.edit, this._uriIdentService);
311
- }
312
- if (resolved.command) {
313
- codeAction.command = resolved.command;
314
- }
315
- return codeAction;
316
- };
317
- }
318
- this._registrations.set(handle, this._languageFeaturesService.codeActionProvider.register(selector, provider));
319
- }
320
- $registerPasteEditProvider(handle, selector, id, metadata) {
321
- const provider = ( new MainThreadPasteEditProvider(handle, this._proxy, id, metadata, this._uriIdentService));
322
- this._pasteEditProviders.set(handle, provider);
323
- this._registrations.set(handle, combinedDisposable(this._languageFeaturesService.documentPasteEditProvider.register(selector, provider), toDisposable(() => this._pasteEditProviders.delete(handle))));
324
- }
325
- $resolvePasteFileData(handle, requestId, dataId) {
326
- const provider = this._pasteEditProviders.get(handle);
327
- if (!provider) {
328
- throw new Error('Could not find provider');
329
- }
330
- return provider.resolveFileData(requestId, dataId);
331
- }
332
- $registerDocumentFormattingSupport(handle, selector, extensionId, displayName) {
333
- this._registrations.set(handle, this._languageFeaturesService.documentFormattingEditProvider.register(selector, {
334
- extensionId,
335
- displayName,
336
- provideDocumentFormattingEdits: (model, options, token) => {
337
- return this._proxy.$provideDocumentFormattingEdits(handle, model.uri, options, token);
338
- }
339
- }));
340
- }
341
- $registerRangeFormattingSupport(handle, selector, extensionId, displayName, supportsRanges) {
342
- this._registrations.set(handle, this._languageFeaturesService.documentRangeFormattingEditProvider.register(selector, {
343
- extensionId,
344
- displayName,
345
- provideDocumentRangeFormattingEdits: (model, range, options, token) => {
346
- return this._proxy.$provideDocumentRangeFormattingEdits(handle, model.uri, range, options, token);
347
- },
348
- provideDocumentRangesFormattingEdits: !supportsRanges
349
- ? undefined
350
- : (model, ranges, options, token) => {
351
- return this._proxy.$provideDocumentRangesFormattingEdits(handle, model.uri, ranges, options, token);
352
- },
353
- }));
354
- }
355
- $registerOnTypeFormattingSupport(handle, selector, autoFormatTriggerCharacters, extensionId) {
356
- this._registrations.set(handle, this._languageFeaturesService.onTypeFormattingEditProvider.register(selector, {
357
- extensionId,
358
- autoFormatTriggerCharacters,
359
- provideOnTypeFormattingEdits: (model, position, ch, options, token) => {
360
- return this._proxy.$provideOnTypeFormattingEdits(handle, model.uri, position, ch, options, token);
361
- }
362
- }));
363
- }
364
- $registerNavigateTypeSupport(handle, supportsResolve) {
365
- let lastResultId;
366
- const provider = {
367
- provideWorkspaceSymbols: async (search, token) => {
368
- const result = await this._proxy.$provideWorkspaceSymbols(handle, search, token);
369
- if (lastResultId !== undefined) {
370
- this._proxy.$releaseWorkspaceSymbols(handle, lastResultId);
371
- }
372
- lastResultId = result.cacheId;
373
- return MainThreadLanguageFeatures_1._reviveWorkspaceSymbolDto(result.symbols);
374
- }
375
- };
376
- if (supportsResolve) {
377
- provider.resolveWorkspaceSymbol = async (item, token) => {
378
- const resolvedItem = await this._proxy.$resolveWorkspaceSymbol(handle, item, token);
379
- return resolvedItem && MainThreadLanguageFeatures_1._reviveWorkspaceSymbolDto(resolvedItem);
380
- };
381
- }
382
- this._registrations.set(handle, WorkspaceSymbolProviderRegistry.register(provider));
383
- }
384
- $registerRenameSupport(handle, selector, supportResolveLocation) {
385
- this._registrations.set(handle, this._languageFeaturesService.renameProvider.register(selector, {
386
- provideRenameEdits: (model, position, newName, token) => {
387
- return this._proxy.$provideRenameEdits(handle, model.uri, position, newName, token).then(data => reviveWorkspaceEditDto(data, this._uriIdentService));
388
- },
389
- resolveRenameLocation: supportResolveLocation
390
- ? (model, position, token) => this._proxy.$resolveRenameLocation(handle, model.uri, position, token)
391
- : undefined
392
- }));
393
- }
394
- $registerNewSymbolNamesProvider(handle, selector) {
395
- this._registrations.set(handle, this._languageFeaturesService.newSymbolNamesProvider.register(selector, {
396
- provideNewSymbolNames: (model, range, token) => {
397
- return this._proxy.$provideNewSymbolNames(handle, model.uri, range, token);
398
- }
399
- }));
400
- }
401
- $registerDocumentSemanticTokensProvider(handle, selector, legend, eventHandle) {
402
- let event = undefined;
403
- if (typeof eventHandle === 'number') {
404
- const emitter = ( new Emitter());
405
- this._registrations.set(eventHandle, emitter);
406
- event = emitter.event;
407
- }
408
- this._registrations.set(handle, this._languageFeaturesService.documentSemanticTokensProvider.register(selector, ( new MainThreadDocumentSemanticTokensProvider(this._proxy, handle, legend, event))));
409
- }
410
- $emitDocumentSemanticTokensEvent(eventHandle) {
411
- const obj = this._registrations.get(eventHandle);
412
- if (obj instanceof Emitter) {
413
- obj.fire(undefined);
414
- }
415
- }
416
- $registerDocumentRangeSemanticTokensProvider(handle, selector, legend) {
417
- this._registrations.set(handle, this._languageFeaturesService.documentRangeSemanticTokensProvider.register(selector, ( new MainThreadDocumentRangeSemanticTokensProvider(this._proxy, handle, legend))));
418
- }
419
- static _inflateSuggestDto(defaultRange, data, extensionId) {
420
- const label = data["a" ];
421
- const commandId = data["o" ];
422
- const commandIdent = data["n" ];
423
- const commitChars = data["k" ];
424
- return {
425
- label,
426
- extensionId,
427
- kind: data["b" ] ?? 9 ,
428
- tags: data["m" ],
429
- detail: data["c" ],
430
- documentation: data["d" ],
431
- sortText: data["e" ],
432
- filterText: data["f" ],
433
- preselect: data["g" ],
434
- insertText: data["h" ] ?? (typeof label === 'string' ? label : label.label),
435
- range: data["j" ] ?? defaultRange,
436
- insertTextRules: data["i" ],
437
- commitCharacters: commitChars ? Array.from(commitChars) : undefined,
438
- additionalTextEdits: data["l" ],
439
- command: commandId ? {
440
- $ident: commandIdent,
441
- id: commandId,
442
- title: '',
443
- arguments: commandIdent ? [commandIdent] : data["p" ],
444
- } : undefined,
445
- _id: data.x,
446
- };
447
- }
448
- $registerCompletionsProvider(handle, selector, triggerCharacters, supportsResolveDetails, extensionId) {
449
- const provider = {
450
- triggerCharacters,
451
- _debugDisplayName: `${extensionId.value}(${triggerCharacters.join('')})`,
452
- provideCompletionItems: async (model, position, context, token) => {
453
- const result = await this._proxy.$provideCompletionItems(handle, model.uri, position, context, token);
454
- if (!result) {
455
- return result;
456
- }
457
- return {
458
- suggestions: ( result["b" ].map(
459
- d => MainThreadLanguageFeatures_1._inflateSuggestDto(result["a" ], d, extensionId)
460
- )),
461
- incomplete: result["c" ] || false,
462
- duration: result["d" ],
463
- dispose: () => {
464
- if (typeof result.x === 'number') {
465
- this._proxy.$releaseCompletionItems(handle, result.x);
466
- }
467
- }
468
- };
469
- }
470
- };
471
- if (supportsResolveDetails) {
472
- provider.resolveCompletionItem = (suggestion, token) => {
473
- return this._proxy.$resolveCompletionItem(handle, suggestion._id, token).then(result => {
474
- if (!result) {
475
- return suggestion;
476
- }
477
- const newSuggestion = MainThreadLanguageFeatures_1._inflateSuggestDto(suggestion.range, result, extensionId);
478
- return mixin(suggestion, newSuggestion, true);
479
- });
480
- };
481
- }
482
- this._registrations.set(handle, this._languageFeaturesService.completionProvider.register(selector, provider));
483
- }
484
- $registerInlineCompletionsSupport(handle, selector, supportsHandleEvents, extensionId, yieldsToExtensionIds) {
485
- const provider = {
486
- provideInlineCompletions: async (model, position, context, token) => {
487
- return this._proxy.$provideInlineCompletions(handle, model.uri, position, context, token);
488
- },
489
- handleItemDidShow: async (completions, item, updatedInsertText) => {
490
- if (supportsHandleEvents) {
491
- await this._proxy.$handleInlineCompletionDidShow(handle, completions.pid, item.idx, updatedInsertText);
492
- }
493
- },
494
- handlePartialAccept: async (completions, item, acceptedCharacters) => {
495
- if (supportsHandleEvents) {
496
- await this._proxy.$handleInlineCompletionPartialAccept(handle, completions.pid, item.idx, acceptedCharacters);
497
- }
498
- },
499
- freeInlineCompletions: (completions) => {
500
- this._proxy.$freeInlineCompletionsList(handle, completions.pid);
501
- },
502
- groupId: extensionId,
503
- yieldsToGroupIds: yieldsToExtensionIds,
504
- toString() {
505
- return `InlineCompletionsProvider(${extensionId})`;
506
- }
507
- };
508
- this._registrations.set(handle, this._languageFeaturesService.inlineCompletionsProvider.register(selector, provider));
509
- }
510
- $registerInlineEditProvider(handle, selector, extensionId) {
511
- const provider = {
512
- provideInlineEdit: async (model, context, token) => {
513
- return this._proxy.$provideInlineEdit(handle, model.uri, context, token);
514
- },
515
- freeInlineEdit: (edit) => {
516
- this._proxy.$freeInlineEdit(handle, edit.pid);
517
- }
518
- };
519
- this._registrations.set(handle, this._languageFeaturesService.inlineEditProvider.register(selector, provider));
520
- }
521
- $registerSignatureHelpProvider(handle, selector, metadata) {
522
- this._registrations.set(handle, this._languageFeaturesService.signatureHelpProvider.register(selector, {
523
- signatureHelpTriggerCharacters: metadata.triggerCharacters,
524
- signatureHelpRetriggerCharacters: metadata.retriggerCharacters,
525
- provideSignatureHelp: async (model, position, token, context) => {
526
- const result = await this._proxy.$provideSignatureHelp(handle, model.uri, position, context, token);
527
- if (!result) {
528
- return undefined;
529
- }
530
- return {
531
- value: result,
532
- dispose: () => {
533
- this._proxy.$releaseSignatureHelp(handle, result.id);
534
- }
535
- };
536
- }
537
- }));
538
- }
539
- $registerInlayHintsProvider(handle, selector, supportsResolve, eventHandle, displayName) {
540
- const provider = {
541
- displayName,
542
- provideInlayHints: async (model, range, token) => {
543
- const result = await this._proxy.$provideInlayHints(handle, model.uri, range, token);
544
- if (!result) {
545
- return;
546
- }
547
- return {
548
- hints: revive(result.hints),
549
- dispose: () => {
550
- if (result.cacheId) {
551
- this._proxy.$releaseInlayHints(handle, result.cacheId);
552
- }
553
- }
554
- };
555
- }
556
- };
557
- if (supportsResolve) {
558
- provider.resolveInlayHint = async (hint, token) => {
559
- const dto = hint;
560
- if (!dto.cacheId) {
561
- return hint;
562
- }
563
- const result = await this._proxy.$resolveInlayHint(handle, dto.cacheId, token);
564
- if (token.isCancellationRequested) {
565
- throw new CancellationError();
566
- }
567
- if (!result) {
568
- return hint;
569
- }
570
- return {
571
- ...hint,
572
- tooltip: result.tooltip,
573
- label: revive(result.label),
574
- textEdits: result.textEdits
575
- };
576
- };
577
- }
578
- if (typeof eventHandle === 'number') {
579
- const emitter = ( new Emitter());
580
- this._registrations.set(eventHandle, emitter);
581
- provider.onDidChangeInlayHints = emitter.event;
582
- }
583
- this._registrations.set(handle, this._languageFeaturesService.inlayHintsProvider.register(selector, provider));
584
- }
585
- $emitInlayHintsEvent(eventHandle) {
586
- const obj = this._registrations.get(eventHandle);
587
- if (obj instanceof Emitter) {
588
- obj.fire(undefined);
589
- }
590
- }
591
- $registerDocumentLinkProvider(handle, selector, supportsResolve) {
592
- const provider = {
593
- provideLinks: (model, token) => {
594
- return this._proxy.$provideDocumentLinks(handle, model.uri, token).then(dto => {
595
- if (!dto) {
596
- return undefined;
597
- }
598
- return {
599
- links: ( dto.links.map(MainThreadLanguageFeatures_1._reviveLinkDTO)),
600
- dispose: () => {
601
- if (typeof dto.cacheId === 'number') {
602
- this._proxy.$releaseDocumentLinks(handle, dto.cacheId);
603
- }
604
- }
605
- };
606
- });
607
- }
608
- };
609
- if (supportsResolve) {
610
- provider.resolveLink = (link, token) => {
611
- const dto = link;
612
- if (!dto.cacheId) {
613
- return link;
614
- }
615
- return this._proxy.$resolveDocumentLink(handle, dto.cacheId, token).then(obj => {
616
- return obj && MainThreadLanguageFeatures_1._reviveLinkDTO(obj);
617
- });
618
- };
619
- }
620
- this._registrations.set(handle, this._languageFeaturesService.linkProvider.register(selector, provider));
621
- }
622
- $registerDocumentColorProvider(handle, selector) {
623
- const proxy = this._proxy;
624
- this._registrations.set(handle, this._languageFeaturesService.colorProvider.register(selector, {
625
- provideDocumentColors: (model, token) => {
626
- return proxy.$provideDocumentColors(handle, model.uri, token)
627
- .then(documentColors => {
628
- return ( documentColors.map(documentColor => {
629
- const [red, green, blue, alpha] = documentColor.color;
630
- const color = {
631
- red: red,
632
- green: green,
633
- blue: blue,
634
- alpha
635
- };
636
- return {
637
- color,
638
- range: documentColor.range
639
- };
640
- }));
641
- });
642
- },
643
- provideColorPresentations: (model, colorInfo, token) => {
644
- return proxy.$provideColorPresentations(handle, model.uri, {
645
- color: [colorInfo.color.red, colorInfo.color.green, colorInfo.color.blue, colorInfo.color.alpha],
646
- range: colorInfo.range
647
- }, token);
648
- }
649
- }));
650
- }
651
- $registerFoldingRangeProvider(handle, selector, extensionId, eventHandle) {
652
- const provider = {
653
- id: extensionId.value,
654
- provideFoldingRanges: (model, context, token) => {
655
- return this._proxy.$provideFoldingRanges(handle, model.uri, context, token);
656
- }
657
- };
658
- if (typeof eventHandle === 'number') {
659
- const emitter = ( new Emitter());
660
- this._registrations.set(eventHandle, emitter);
661
- provider.onDidChange = emitter.event;
662
- }
663
- this._registrations.set(handle, this._languageFeaturesService.foldingRangeProvider.register(selector, provider));
664
- }
665
- $emitFoldingRangeEvent(eventHandle, event) {
666
- const obj = this._registrations.get(eventHandle);
667
- if (obj instanceof Emitter) {
668
- obj.fire(event);
669
- }
670
- }
671
- $registerSelectionRangeProvider(handle, selector) {
672
- this._registrations.set(handle, this._languageFeaturesService.selectionRangeProvider.register(selector, {
673
- provideSelectionRanges: (model, positions, token) => {
674
- return this._proxy.$provideSelectionRanges(handle, model.uri, positions, token);
675
- }
676
- }));
677
- }
678
- $registerCallHierarchyProvider(handle, selector) {
679
- this._registrations.set(handle, CallHierarchyProviderRegistry.register(selector, {
680
- prepareCallHierarchy: async (document, position, token) => {
681
- const items = await this._proxy.$prepareCallHierarchy(handle, document.uri, position, token);
682
- if (!items || items.length === 0) {
683
- return undefined;
684
- }
685
- return {
686
- dispose: () => {
687
- for (const item of items) {
688
- this._proxy.$releaseCallHierarchy(handle, item._sessionId);
689
- }
690
- },
691
- roots: ( items.map(MainThreadLanguageFeatures_1._reviveCallHierarchyItemDto))
692
- };
693
- },
694
- provideOutgoingCalls: async (item, token) => {
695
- const outgoing = await this._proxy.$provideCallHierarchyOutgoingCalls(handle, item._sessionId, item._itemId, token);
696
- if (!outgoing) {
697
- return outgoing;
698
- }
699
- outgoing.forEach(value => {
700
- value.to = MainThreadLanguageFeatures_1._reviveCallHierarchyItemDto(value.to);
701
- });
702
- return outgoing;
703
- },
704
- provideIncomingCalls: async (item, token) => {
705
- const incoming = await this._proxy.$provideCallHierarchyIncomingCalls(handle, item._sessionId, item._itemId, token);
706
- if (!incoming) {
707
- return incoming;
708
- }
709
- incoming.forEach(value => {
710
- value.from = MainThreadLanguageFeatures_1._reviveCallHierarchyItemDto(value.from);
711
- });
712
- return incoming;
713
- }
714
- }));
715
- }
716
- static _reviveRegExp(regExp) {
717
- return ( new RegExp(regExp.pattern, regExp.flags));
718
- }
719
- static _reviveIndentationRule(indentationRule) {
720
- return {
721
- decreaseIndentPattern: MainThreadLanguageFeatures_1._reviveRegExp(indentationRule.decreaseIndentPattern),
722
- increaseIndentPattern: MainThreadLanguageFeatures_1._reviveRegExp(indentationRule.increaseIndentPattern),
723
- indentNextLinePattern: indentationRule.indentNextLinePattern ? MainThreadLanguageFeatures_1._reviveRegExp(indentationRule.indentNextLinePattern) : undefined,
724
- unIndentedLinePattern: indentationRule.unIndentedLinePattern ? MainThreadLanguageFeatures_1._reviveRegExp(indentationRule.unIndentedLinePattern) : undefined,
725
- };
726
- }
727
- static _reviveOnEnterRule(onEnterRule) {
728
- return {
729
- beforeText: MainThreadLanguageFeatures_1._reviveRegExp(onEnterRule.beforeText),
730
- afterText: onEnterRule.afterText ? MainThreadLanguageFeatures_1._reviveRegExp(onEnterRule.afterText) : undefined,
731
- previousLineText: onEnterRule.previousLineText ? MainThreadLanguageFeatures_1._reviveRegExp(onEnterRule.previousLineText) : undefined,
732
- action: onEnterRule.action
733
- };
734
- }
735
- static _reviveOnEnterRules(onEnterRules) {
736
- return ( onEnterRules.map(MainThreadLanguageFeatures_1._reviveOnEnterRule));
737
- }
738
- $setLanguageConfiguration(handle, languageId, _configuration) {
739
- const configuration = {
740
- comments: _configuration.comments,
741
- brackets: _configuration.brackets,
742
- wordPattern: _configuration.wordPattern ? MainThreadLanguageFeatures_1._reviveRegExp(_configuration.wordPattern) : undefined,
743
- indentationRules: _configuration.indentationRules ? MainThreadLanguageFeatures_1._reviveIndentationRule(_configuration.indentationRules) : undefined,
744
- onEnterRules: _configuration.onEnterRules ? MainThreadLanguageFeatures_1._reviveOnEnterRules(_configuration.onEnterRules) : undefined,
745
- autoClosingPairs: undefined,
746
- surroundingPairs: undefined,
747
- __electricCharacterSupport: undefined
748
- };
749
- if (_configuration.autoClosingPairs) {
750
- configuration.autoClosingPairs = _configuration.autoClosingPairs;
751
- }
752
- else if (_configuration.__characterPairSupport) {
753
- configuration.autoClosingPairs = _configuration.__characterPairSupport.autoClosingPairs;
754
- }
755
- if (_configuration.__electricCharacterSupport && _configuration.__electricCharacterSupport.docComment) {
756
- configuration.__electricCharacterSupport = {
757
- docComment: {
758
- open: _configuration.__electricCharacterSupport.docComment.open,
759
- close: _configuration.__electricCharacterSupport.docComment.close
760
- }
761
- };
762
- }
763
- if (this._languageService.isRegisteredLanguageId(languageId)) {
764
- this._registrations.set(handle, this._languageConfigurationService.register(languageId, configuration, 100));
765
- }
766
- }
767
- $registerTypeHierarchyProvider(handle, selector) {
768
- this._registrations.set(handle, TypeHierarchyProviderRegistry.register(selector, {
769
- prepareTypeHierarchy: async (document, position, token) => {
770
- const items = await this._proxy.$prepareTypeHierarchy(handle, document.uri, position, token);
771
- if (!items) {
772
- return undefined;
773
- }
774
- return {
775
- dispose: () => {
776
- for (const item of items) {
777
- this._proxy.$releaseTypeHierarchy(handle, item._sessionId);
778
- }
779
- },
780
- roots: ( items.map(MainThreadLanguageFeatures_1._reviveTypeHierarchyItemDto))
781
- };
782
- },
783
- provideSupertypes: async (item, token) => {
784
- const supertypes = await this._proxy.$provideTypeHierarchySupertypes(handle, item._sessionId, item._itemId, token);
785
- if (!supertypes) {
786
- return supertypes;
787
- }
788
- return ( supertypes.map(MainThreadLanguageFeatures_1._reviveTypeHierarchyItemDto));
789
- },
790
- provideSubtypes: async (item, token) => {
791
- const subtypes = await this._proxy.$provideTypeHierarchySubtypes(handle, item._sessionId, item._itemId, token);
792
- if (!subtypes) {
793
- return subtypes;
794
- }
795
- return ( subtypes.map(MainThreadLanguageFeatures_1._reviveTypeHierarchyItemDto));
796
- }
797
- }));
798
- }
799
- $registerDocumentOnDropEditProvider(handle, selector, id, metadata) {
800
- const provider = ( new MainThreadDocumentOnDropEditProvider(handle, this._proxy, id, metadata, this._uriIdentService));
801
- this._documentOnDropEditProviders.set(handle, provider);
802
- this._registrations.set(handle, combinedDisposable(this._languageFeaturesService.documentOnDropEditProvider.register(selector, provider), toDisposable(() => this._documentOnDropEditProviders.delete(handle))));
803
- }
804
- async $resolveDocumentOnDropFileData(handle, requestId, dataId) {
805
- const provider = this._documentOnDropEditProviders.get(handle);
806
- if (!provider) {
807
- throw new Error('Could not find provider');
808
- }
809
- return provider.resolveDocumentOnDropFileData(requestId, dataId);
810
- }
811
- $registerMappedEditsProvider(handle, selector) {
812
- const provider = ( new MainThreadMappedEditsProvider(handle, this._proxy, this._uriIdentService));
813
- this._registrations.set(handle, this._languageFeaturesService.mappedEditsProvider.register(selector, provider));
814
- }
815
- };
816
- MainThreadLanguageFeatures = MainThreadLanguageFeatures_1 = __decorate([
817
- extHostNamedCustomer(MainContext.MainThreadLanguageFeatures),
818
- ( __param(1, ILanguageService)),
819
- ( __param(2, ILanguageConfigurationService)),
820
- ( __param(3, ILanguageFeaturesService)),
821
- ( __param(4, IUriIdentityService))
822
- ], MainThreadLanguageFeatures);
823
- let MainThreadPasteEditProvider = class MainThreadPasteEditProvider {
824
- constructor(_handle, _proxy, id, metadata, _uriIdentService) {
825
- this._handle = _handle;
826
- this._proxy = _proxy;
827
- this._uriIdentService = _uriIdentService;
828
- this.dataTransfers = ( new DataTransferFileCache());
829
- this.id = id;
830
- this.copyMimeTypes = metadata.copyMimeTypes;
831
- this.pasteMimeTypes = metadata.pasteMimeTypes;
832
- if (metadata.supportsCopy) {
833
- this.prepareDocumentPaste = async (model, selections, dataTransfer, token) => {
834
- const dataTransferDto = await DataTransfer.from(dataTransfer);
835
- if (token.isCancellationRequested) {
836
- return undefined;
837
- }
838
- const newDataTransfer = await this._proxy.$prepareDocumentPaste(_handle, model.uri, selections, dataTransferDto, token);
839
- if (!newDataTransfer) {
840
- return undefined;
841
- }
842
- const dataTransferOut = ( new VSDataTransfer());
843
- for (const [type, item] of newDataTransfer.items) {
844
- dataTransferOut.replace(type, createStringDataTransferItem(item.asString));
845
- }
846
- return dataTransferOut;
847
- };
848
- }
849
- if (metadata.supportsPaste) {
850
- this.provideDocumentPasteEdits = async (model, selections, dataTransfer, context, token) => {
851
- const request = this.dataTransfers.add(dataTransfer);
852
- try {
853
- const dataTransferDto = await DataTransfer.from(dataTransfer);
854
- if (token.isCancellationRequested) {
855
- return;
856
- }
857
- const result = await this._proxy.$providePasteEdits(this._handle, request.id, model.uri, selections, dataTransferDto, token);
858
- if (!result) {
859
- return;
860
- }
861
- return {
862
- ...result,
863
- additionalEdit: result.additionalEdit ? reviveWorkspaceEditDto(result.additionalEdit, this._uriIdentService, dataId => this.resolveFileData(request.id, dataId)) : undefined,
864
- };
865
- }
866
- finally {
867
- request.dispose();
868
- }
869
- };
870
- }
871
- }
872
- resolveFileData(requestId, dataId) {
873
- return this.dataTransfers.resolveFileData(requestId, dataId);
874
- }
875
- };
876
- MainThreadPasteEditProvider = ( __decorate([
877
- ( __param(4, IUriIdentityService))
878
- ], MainThreadPasteEditProvider));
879
- let MainThreadDocumentOnDropEditProvider = class MainThreadDocumentOnDropEditProvider {
880
- constructor(_handle, _proxy, id, metadata, _uriIdentService) {
881
- this._handle = _handle;
882
- this._proxy = _proxy;
883
- this._uriIdentService = _uriIdentService;
884
- this.dataTransfers = ( new DataTransferFileCache());
885
- this.id = id;
886
- this.dropMimeTypes = metadata?.dropMimeTypes ?? ['*/*'];
887
- }
888
- async provideDocumentOnDropEdits(model, position, dataTransfer, token) {
889
- const request = this.dataTransfers.add(dataTransfer);
890
- try {
891
- const dataTransferDto = await DataTransfer.from(dataTransfer);
892
- if (token.isCancellationRequested) {
893
- return;
894
- }
895
- const edit = await this._proxy.$provideDocumentOnDropEdits(this._handle, request.id, model.uri, position, dataTransferDto, token);
896
- if (!edit) {
897
- return;
898
- }
899
- return {
900
- ...edit,
901
- additionalEdit: reviveWorkspaceEditDto(edit.additionalEdit, this._uriIdentService, dataId => this.resolveDocumentOnDropFileData(request.id, dataId)),
902
- };
903
- }
904
- finally {
905
- request.dispose();
906
- }
907
- }
908
- resolveDocumentOnDropFileData(requestId, dataId) {
909
- return this.dataTransfers.resolveFileData(requestId, dataId);
910
- }
911
- };
912
- MainThreadDocumentOnDropEditProvider = ( __decorate([
913
- ( __param(4, IUriIdentityService))
914
- ], MainThreadDocumentOnDropEditProvider));
915
- class MainThreadDocumentSemanticTokensProvider {
916
- constructor(_proxy, _handle, _legend, onDidChange) {
917
- this._proxy = _proxy;
918
- this._handle = _handle;
919
- this._legend = _legend;
920
- this.onDidChange = onDidChange;
921
- }
922
- releaseDocumentSemanticTokens(resultId) {
923
- if (resultId) {
924
- this._proxy.$releaseDocumentSemanticTokens(this._handle, parseInt(resultId, 10));
925
- }
926
- }
927
- getLegend() {
928
- return this._legend;
929
- }
930
- async provideDocumentSemanticTokens(model, lastResultId, token) {
931
- const nLastResultId = lastResultId ? parseInt(lastResultId, 10) : 0;
932
- const encodedDto = await this._proxy.$provideDocumentSemanticTokens(this._handle, model.uri, nLastResultId, token);
933
- if (!encodedDto) {
934
- return null;
935
- }
936
- if (token.isCancellationRequested) {
937
- return null;
938
- }
939
- const dto = decodeSemanticTokensDto(encodedDto);
940
- if (dto.type === 'full') {
941
- return {
942
- resultId: String(dto.id),
943
- data: dto.data
944
- };
945
- }
946
- return {
947
- resultId: String(dto.id),
948
- edits: dto.deltas
949
- };
950
- }
951
- }
952
- class MainThreadDocumentRangeSemanticTokensProvider {
953
- constructor(_proxy, _handle, _legend) {
954
- this._proxy = _proxy;
955
- this._handle = _handle;
956
- this._legend = _legend;
957
- }
958
- getLegend() {
959
- return this._legend;
960
- }
961
- async provideDocumentRangeSemanticTokens(model, range, token) {
962
- const encodedDto = await this._proxy.$provideDocumentRangeSemanticTokens(this._handle, model.uri, range, token);
963
- if (!encodedDto) {
964
- return null;
965
- }
966
- if (token.isCancellationRequested) {
967
- return null;
968
- }
969
- const dto = decodeSemanticTokensDto(encodedDto);
970
- if (dto.type === 'full') {
971
- return {
972
- resultId: String(dto.id),
973
- data: dto.data
974
- };
975
- }
976
- throw new Error(`Unexpected`);
977
- }
978
- }
979
- class MainThreadMappedEditsProvider {
980
- constructor(_handle, _proxy, _uriService) {
981
- this._handle = _handle;
982
- this._proxy = _proxy;
983
- this._uriService = _uriService;
984
- }
985
- async provideMappedEdits(document, codeBlocks, context, token) {
986
- const res = await this._proxy.$provideMappedEdits(this._handle, document.uri, codeBlocks, context, token);
987
- return res ? reviveWorkspaceEditDto(res, this._uriService) : null;
988
- }
989
- }
990
-
991
- export { MainThreadDocumentRangeSemanticTokensProvider, MainThreadDocumentSemanticTokensProvider, MainThreadLanguageFeatures, MainThreadMappedEditsProvider };