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