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

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/_virtual/semver.js +3 -0
  2. package/extensions.js +6 -6
  3. package/external/vscode-semver/semver.js +985 -0
  4. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +8 -0
  5. package/package.json +9 -9
  6. package/vscode/src/vs/base/common/console.js +62 -0
  7. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +497 -0
  8. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +44 -0
  9. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +27 -0
  10. package/vscode/src/vs/platform/remote/common/managedSocket.js +98 -0
  11. package/vscode/src/vs/workbench/api/browser/extensionHost.contribution.js +104 -0
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +31 -0
  13. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +35 -0
  14. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +254 -0
  15. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +68 -0
  16. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +103 -0
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +70 -0
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +207 -0
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +41 -0
  20. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +24 -0
  21. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +108 -0
  22. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +98 -0
  23. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +560 -0
  24. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -0
  25. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +35 -0
  26. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +579 -0
  27. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +435 -0
  28. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +102 -0
  29. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +69 -0
  30. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +68 -0
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +79 -0
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +253 -0
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +370 -0
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +22 -0
  35. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +41 -0
  36. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +414 -0
  37. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +501 -0
  38. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +227 -0
  39. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +24 -0
  40. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +317 -0
  41. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +208 -0
  42. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +369 -0
  43. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +72 -0
  44. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +28 -0
  45. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +50 -0
  46. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +27 -0
  47. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +1016 -0
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +185 -0
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +78 -0
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +35 -0
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +78 -0
  52. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +93 -0
  53. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +137 -0
  54. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +194 -0
  55. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +123 -0
  56. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +188 -0
  57. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +129 -0
  58. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +131 -0
  59. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +374 -0
  60. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +25 -0
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +48 -0
  62. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +76 -0
  63. package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +38 -0
  64. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +68 -0
  65. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +42 -0
  66. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +185 -0
  67. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +30 -0
  68. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +493 -0
  69. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +49 -0
  70. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +168 -0
  71. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +70 -0
  72. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +50 -0
  73. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +99 -0
  74. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +53 -0
  75. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +72 -0
  76. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +731 -0
  77. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +53 -0
  78. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +409 -0
  79. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +51 -0
  80. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +219 -0
  81. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +24 -0
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +55 -0
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +312 -0
  84. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +223 -0
  85. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +110 -0
  86. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +61 -0
  87. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +29 -0
  88. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +283 -0
  89. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +100 -0
  90. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +135 -0
  91. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +57 -0
  92. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +268 -0
  93. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +35 -0
  94. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +76 -0
  95. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +83 -0
  96. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +285 -0
  97. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +276 -0
  98. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +52 -0
  99. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +1149 -0
  100. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +41 -0
  101. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +25 -0
  102. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +512 -0
  103. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +274 -0
  104. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +58 -0
  105. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +80 -0
  106. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +64 -0
  107. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +161 -0
  108. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +49 -0
  109. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +222 -0
@@ -0,0 +1,435 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { DisposableStore, DisposableMap, toDisposable } from 'vscode/vscode/vs/base/common/lifecycle';
3
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
4
+ import { IDebugService, IDebugVisualization } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
5
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
6
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
7
+ import Severity$1 from 'vscode/vscode/vs/base/common/severity';
8
+ import { AbstractDebugAdapter } from 'vscode/vscode/vs/workbench/contrib/debug/common/abstractDebugAdapter';
9
+ import { isSessionAttach, convertToVSCPaths, convertToDAPaths } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugUtils';
10
+ import { ErrorNoTelemetry } from 'vscode/vscode/vs/base/common/errors';
11
+ import { IDebugVisualizerService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugVisualizers';
12
+ import { ExtensionIdentifier } from 'vscode/vscode/vs/platform/extensions/common/extensions';
13
+ import { Event } from 'vscode/vscode/vs/base/common/event';
14
+
15
+ let MainThreadDebugService = class MainThreadDebugService {
16
+ constructor(extHostContext, debugService, visualizerService) {
17
+ this.debugService = debugService;
18
+ this.visualizerService = visualizerService;
19
+ this._toDispose = ( new DisposableStore());
20
+ this._debugAdaptersHandleCounter = 1;
21
+ this._visualizerHandles = ( new Map());
22
+ this._visualizerTreeHandles = ( new Map());
23
+ this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostDebugService));
24
+ const sessionListeners = ( new DisposableMap());
25
+ this._toDispose.add(sessionListeners);
26
+ this._toDispose.add(debugService.onDidNewSession(session => {
27
+ this._proxy.$acceptDebugSessionStarted(this.getSessionDto(session));
28
+ const store = sessionListeners.get(session);
29
+ store.add(session.onDidChangeName(name => {
30
+ this._proxy.$acceptDebugSessionNameChanged(this.getSessionDto(session), name);
31
+ }));
32
+ }));
33
+ this._toDispose.add(debugService.onWillNewSession(session => {
34
+ let store = sessionListeners.get(session);
35
+ if (!store) {
36
+ store = ( new DisposableStore());
37
+ sessionListeners.set(session, store);
38
+ }
39
+ store.add(session.onDidCustomEvent(event => this._proxy.$acceptDebugSessionCustomEvent(this.getSessionDto(session), event)));
40
+ }));
41
+ this._toDispose.add(debugService.onDidEndSession(({ session, restart }) => {
42
+ this._proxy.$acceptDebugSessionTerminated(this.getSessionDto(session));
43
+ this._extHostKnownSessions.delete(session.getId());
44
+ if (!restart) {
45
+ sessionListeners.deleteAndDispose(session);
46
+ }
47
+ for (const [handle, value] of this._debugAdapters) {
48
+ if (value.session === session) {
49
+ this._debugAdapters.delete(handle);
50
+ }
51
+ }
52
+ }));
53
+ this._toDispose.add(debugService.getViewModel().onDidFocusSession(session => {
54
+ this._proxy.$acceptDebugSessionActiveChanged(this.getSessionDto(session));
55
+ }));
56
+ this._toDispose.add(toDisposable(() => {
57
+ for (const [handle, da] of this._debugAdapters) {
58
+ da.fireError(handle, ( new Error('Extension host shut down')));
59
+ }
60
+ }));
61
+ this._debugAdapters = ( new Map());
62
+ this._debugConfigurationProviders = ( new Map());
63
+ this._debugAdapterDescriptorFactories = ( new Map());
64
+ this._extHostKnownSessions = ( new Set());
65
+ const viewModel = this.debugService.getViewModel();
66
+ this._toDispose.add(Event.any(viewModel.onDidFocusStackFrame, viewModel.onDidFocusThread)(() => {
67
+ const stackFrame = viewModel.focusedStackFrame;
68
+ const thread = viewModel.focusedThread;
69
+ if (stackFrame) {
70
+ this._proxy.$acceptStackFrameFocus({
71
+ kind: 'stackFrame',
72
+ threadId: stackFrame.thread.threadId,
73
+ frameId: stackFrame.frameId,
74
+ sessionId: stackFrame.thread.session.getId(),
75
+ });
76
+ }
77
+ else if (thread) {
78
+ this._proxy.$acceptStackFrameFocus({
79
+ kind: 'thread',
80
+ threadId: thread.threadId,
81
+ sessionId: thread.session.getId(),
82
+ });
83
+ }
84
+ else {
85
+ this._proxy.$acceptStackFrameFocus(undefined);
86
+ }
87
+ }));
88
+ this.sendBreakpointsAndListen();
89
+ }
90
+ $registerDebugVisualizerTree(treeId, canEdit) {
91
+ this.visualizerService.registerTree(treeId, {
92
+ disposeItem: id => this._proxy.$disposeVisualizedTree(id),
93
+ getChildren: e => this._proxy.$getVisualizerTreeItemChildren(treeId, e),
94
+ getTreeItem: e => this._proxy.$getVisualizerTreeItem(treeId, e),
95
+ editItem: canEdit ? ((e, v) => this._proxy.$editVisualizerTreeItem(e, v)) : undefined
96
+ });
97
+ }
98
+ $unregisterDebugVisualizerTree(treeId) {
99
+ this._visualizerTreeHandles.get(treeId)?.dispose();
100
+ this._visualizerTreeHandles.delete(treeId);
101
+ }
102
+ $registerDebugVisualizer(extensionId, id) {
103
+ const handle = this.visualizerService.register({
104
+ extensionId: ( new ExtensionIdentifier(extensionId)),
105
+ id,
106
+ disposeDebugVisualizers: ids => this._proxy.$disposeDebugVisualizers(ids),
107
+ executeDebugVisualizerCommand: id => this._proxy.$executeDebugVisualizerCommand(id),
108
+ provideDebugVisualizers: (context, token) => this._proxy.$provideDebugVisualizers(extensionId, id, context, token).then(r => ( r.map(IDebugVisualization.deserialize))),
109
+ resolveDebugVisualizer: (viz, token) => this._proxy.$resolveDebugVisualizer(viz.id, token),
110
+ });
111
+ this._visualizerHandles.set(`${extensionId}/${id}`, handle);
112
+ }
113
+ $unregisterDebugVisualizer(extensionId, id) {
114
+ const key = `${extensionId}/${id}`;
115
+ this._visualizerHandles.get(key)?.dispose();
116
+ this._visualizerHandles.delete(key);
117
+ }
118
+ sendBreakpointsAndListen() {
119
+ this._toDispose.add(this.debugService.getModel().onDidChangeBreakpoints(e => {
120
+ if (e && !e.sessionOnly) {
121
+ const delta = {};
122
+ if (e.added) {
123
+ delta.added = this.convertToDto(e.added);
124
+ }
125
+ if (e.removed) {
126
+ delta.removed = ( e.removed.map(x => x.getId()));
127
+ }
128
+ if (e.changed) {
129
+ delta.changed = this.convertToDto(e.changed);
130
+ }
131
+ if (delta.added || delta.removed || delta.changed) {
132
+ this._proxy.$acceptBreakpointsDelta(delta);
133
+ }
134
+ }
135
+ }));
136
+ const bps = this.debugService.getModel().getBreakpoints();
137
+ const fbps = this.debugService.getModel().getFunctionBreakpoints();
138
+ const dbps = this.debugService.getModel().getDataBreakpoints();
139
+ if (bps.length > 0 || fbps.length > 0) {
140
+ this._proxy.$acceptBreakpointsDelta({
141
+ added: this.convertToDto(bps).concat(this.convertToDto(fbps)).concat(this.convertToDto(dbps))
142
+ });
143
+ }
144
+ }
145
+ dispose() {
146
+ this._toDispose.dispose();
147
+ }
148
+ createDebugAdapter(session) {
149
+ const handle = this._debugAdaptersHandleCounter++;
150
+ const da = ( new ExtensionHostDebugAdapter(this, handle, this._proxy, session));
151
+ this._debugAdapters.set(handle, da);
152
+ return da;
153
+ }
154
+ substituteVariables(folder, config) {
155
+ return Promise.resolve(this._proxy.$substituteVariables(folder ? folder.uri : undefined, config));
156
+ }
157
+ runInTerminal(args, sessionId) {
158
+ return this._proxy.$runInTerminal(args, sessionId);
159
+ }
160
+ $registerDebugTypes(debugTypes) {
161
+ this._toDispose.add(this.debugService.getAdapterManager().registerDebugAdapterFactory(debugTypes, this));
162
+ }
163
+ $registerBreakpoints(DTOs) {
164
+ for (const dto of DTOs) {
165
+ if (dto.type === 'sourceMulti') {
166
+ const rawbps = ( dto.lines.map(l => ({
167
+ id: l.id,
168
+ enabled: l.enabled,
169
+ lineNumber: l.line + 1,
170
+ column: l.character > 0 ? l.character + 1 : undefined,
171
+ condition: l.condition,
172
+ hitCondition: l.hitCondition,
173
+ logMessage: l.logMessage,
174
+ mode: l.mode,
175
+ })));
176
+ this.debugService.addBreakpoints(URI.revive(dto.uri), rawbps);
177
+ }
178
+ else if (dto.type === 'function') {
179
+ this.debugService.addFunctionBreakpoint(dto.functionName, dto.id, dto.mode);
180
+ }
181
+ else if (dto.type === 'data') {
182
+ this.debugService.addDataBreakpoint({
183
+ description: dto.label,
184
+ src: { type: 0 , dataId: dto.dataId },
185
+ canPersist: dto.canPersist,
186
+ accessTypes: dto.accessTypes,
187
+ accessType: dto.accessType,
188
+ mode: dto.mode
189
+ });
190
+ }
191
+ }
192
+ return Promise.resolve();
193
+ }
194
+ $unregisterBreakpoints(breakpointIds, functionBreakpointIds, dataBreakpointIds) {
195
+ breakpointIds.forEach(id => this.debugService.removeBreakpoints(id));
196
+ functionBreakpointIds.forEach(id => this.debugService.removeFunctionBreakpoints(id));
197
+ dataBreakpointIds.forEach(id => this.debugService.removeDataBreakpoints(id));
198
+ return Promise.resolve();
199
+ }
200
+ $registerDebugConfigurationProvider(debugType, providerTriggerKind, hasProvide, hasResolve, hasResolve2, handle) {
201
+ const provider = {
202
+ type: debugType,
203
+ triggerKind: providerTriggerKind
204
+ };
205
+ if (hasProvide) {
206
+ provider.provideDebugConfigurations = (folder, token) => {
207
+ return this._proxy.$provideDebugConfigurations(handle, folder, token);
208
+ };
209
+ }
210
+ if (hasResolve) {
211
+ provider.resolveDebugConfiguration = (folder, config, token) => {
212
+ return this._proxy.$resolveDebugConfiguration(handle, folder, config, token);
213
+ };
214
+ }
215
+ if (hasResolve2) {
216
+ provider.resolveDebugConfigurationWithSubstitutedVariables = (folder, config, token) => {
217
+ return this._proxy.$resolveDebugConfigurationWithSubstitutedVariables(handle, folder, config, token);
218
+ };
219
+ }
220
+ this._debugConfigurationProviders.set(handle, provider);
221
+ this._toDispose.add(this.debugService.getConfigurationManager().registerDebugConfigurationProvider(provider));
222
+ return Promise.resolve(undefined);
223
+ }
224
+ $unregisterDebugConfigurationProvider(handle) {
225
+ const provider = this._debugConfigurationProviders.get(handle);
226
+ if (provider) {
227
+ this._debugConfigurationProviders.delete(handle);
228
+ this.debugService.getConfigurationManager().unregisterDebugConfigurationProvider(provider);
229
+ }
230
+ }
231
+ $registerDebugAdapterDescriptorFactory(debugType, handle) {
232
+ const provider = {
233
+ type: debugType,
234
+ createDebugAdapterDescriptor: session => {
235
+ return Promise.resolve(this._proxy.$provideDebugAdapter(handle, this.getSessionDto(session)));
236
+ }
237
+ };
238
+ this._debugAdapterDescriptorFactories.set(handle, provider);
239
+ this._toDispose.add(this.debugService.getAdapterManager().registerDebugAdapterDescriptorFactory(provider));
240
+ return Promise.resolve(undefined);
241
+ }
242
+ $unregisterDebugAdapterDescriptorFactory(handle) {
243
+ const provider = this._debugAdapterDescriptorFactories.get(handle);
244
+ if (provider) {
245
+ this._debugAdapterDescriptorFactories.delete(handle);
246
+ this.debugService.getAdapterManager().unregisterDebugAdapterDescriptorFactory(provider);
247
+ }
248
+ }
249
+ getSession(sessionId) {
250
+ if (sessionId) {
251
+ return this.debugService.getModel().getSession(sessionId, true);
252
+ }
253
+ return undefined;
254
+ }
255
+ async $startDebugging(folder, nameOrConfig, options) {
256
+ const folderUri = folder ? URI.revive(folder) : undefined;
257
+ const launch = this.debugService.getConfigurationManager().getLaunch(folderUri);
258
+ const parentSession = this.getSession(options.parentSessionID);
259
+ const saveBeforeStart = typeof options.suppressSaveBeforeStart === 'boolean' ? !options.suppressSaveBeforeStart : undefined;
260
+ const debugOptions = {
261
+ noDebug: options.noDebug,
262
+ parentSession,
263
+ lifecycleManagedByParent: options.lifecycleManagedByParent,
264
+ repl: options.repl,
265
+ compact: options.compact,
266
+ compoundRoot: parentSession?.compoundRoot,
267
+ saveBeforeRestart: saveBeforeStart,
268
+ suppressDebugStatusbar: options.suppressDebugStatusbar,
269
+ suppressDebugToolbar: options.suppressDebugToolbar,
270
+ suppressDebugView: options.suppressDebugView,
271
+ };
272
+ try {
273
+ return this.debugService.startDebugging(launch, nameOrConfig, debugOptions, saveBeforeStart);
274
+ }
275
+ catch (err) {
276
+ throw new ErrorNoTelemetry(err && err.message ? err.message : 'cannot start debugging');
277
+ }
278
+ }
279
+ $setDebugSessionName(sessionId, name) {
280
+ const session = this.debugService.getModel().getSession(sessionId);
281
+ session?.setName(name);
282
+ }
283
+ $customDebugAdapterRequest(sessionId, request, args) {
284
+ const session = this.debugService.getModel().getSession(sessionId, true);
285
+ if (session) {
286
+ return session.customRequest(request, args).then(response => {
287
+ if (response && response.success) {
288
+ return response.body;
289
+ }
290
+ else {
291
+ return Promise.reject(( new ErrorNoTelemetry(response ? response.message : 'custom request failed')));
292
+ }
293
+ });
294
+ }
295
+ return Promise.reject(( new ErrorNoTelemetry('debug session not found')));
296
+ }
297
+ $getDebugProtocolBreakpoint(sessionId, breakpoinId) {
298
+ const session = this.debugService.getModel().getSession(sessionId, true);
299
+ if (session) {
300
+ return Promise.resolve(session.getDebugProtocolBreakpoint(breakpoinId));
301
+ }
302
+ return Promise.reject(( new ErrorNoTelemetry('debug session not found')));
303
+ }
304
+ $stopDebugging(sessionId) {
305
+ if (sessionId) {
306
+ const session = this.debugService.getModel().getSession(sessionId, true);
307
+ if (session) {
308
+ return this.debugService.stopSession(session, isSessionAttach(session));
309
+ }
310
+ }
311
+ else {
312
+ return this.debugService.stopSession(undefined);
313
+ }
314
+ return Promise.reject(( new ErrorNoTelemetry('debug session not found')));
315
+ }
316
+ $appendDebugConsole(value) {
317
+ const session = this.debugService.getViewModel().focusedSession;
318
+ session?.appendToRepl({ output: value, sev: Severity$1.Warning });
319
+ }
320
+ $acceptDAMessage(handle, message) {
321
+ this.getDebugAdapter(handle).acceptMessage(convertToVSCPaths(message, false));
322
+ }
323
+ $acceptDAError(handle, name, message, stack) {
324
+ this.getDebugAdapter(handle).fireError(handle, ( new Error(`${name}: ${message}\n${stack}`)));
325
+ }
326
+ $acceptDAExit(handle, code, signal) {
327
+ this.getDebugAdapter(handle).fireExit(handle, code, signal);
328
+ }
329
+ getDebugAdapter(handle) {
330
+ const adapter = this._debugAdapters.get(handle);
331
+ if (!adapter) {
332
+ throw new Error('Invalid debug adapter');
333
+ }
334
+ return adapter;
335
+ }
336
+ $sessionCached(sessionID) {
337
+ this._extHostKnownSessions.add(sessionID);
338
+ }
339
+ getSessionDto(session) {
340
+ if (session) {
341
+ const sessionID = session.getId();
342
+ if (( this._extHostKnownSessions.has(sessionID))) {
343
+ return sessionID;
344
+ }
345
+ else {
346
+ return {
347
+ id: sessionID,
348
+ type: session.configuration.type,
349
+ name: session.name,
350
+ folderUri: session.root ? session.root.uri : undefined,
351
+ configuration: session.configuration,
352
+ parent: session.parentSession?.getId(),
353
+ };
354
+ }
355
+ }
356
+ return undefined;
357
+ }
358
+ convertToDto(bps) {
359
+ return ( bps.map(bp => {
360
+ if ('name' in bp) {
361
+ const fbp = bp;
362
+ return {
363
+ type: 'function',
364
+ id: fbp.getId(),
365
+ enabled: fbp.enabled,
366
+ condition: fbp.condition,
367
+ hitCondition: fbp.hitCondition,
368
+ logMessage: fbp.logMessage,
369
+ functionName: fbp.name
370
+ };
371
+ }
372
+ else if ('src' in bp) {
373
+ const dbp = bp;
374
+ return {
375
+ type: 'data',
376
+ id: dbp.getId(),
377
+ dataId: dbp.src.type === 0 ? dbp.src.dataId : dbp.src.address,
378
+ enabled: dbp.enabled,
379
+ condition: dbp.condition,
380
+ hitCondition: dbp.hitCondition,
381
+ logMessage: dbp.logMessage,
382
+ accessType: dbp.accessType,
383
+ label: dbp.description,
384
+ canPersist: dbp.canPersist
385
+ };
386
+ }
387
+ else {
388
+ const sbp = bp;
389
+ return {
390
+ type: 'source',
391
+ id: sbp.getId(),
392
+ enabled: sbp.enabled,
393
+ condition: sbp.condition,
394
+ hitCondition: sbp.hitCondition,
395
+ logMessage: sbp.logMessage,
396
+ uri: sbp.uri,
397
+ line: sbp.lineNumber > 0 ? sbp.lineNumber - 1 : 0,
398
+ character: (typeof sbp.column === 'number' && sbp.column > 0) ? sbp.column - 1 : 0,
399
+ };
400
+ }
401
+ }));
402
+ }
403
+ };
404
+ MainThreadDebugService = __decorate([
405
+ extHostNamedCustomer(MainContext.MainThreadDebugService),
406
+ ( __param(1, IDebugService)),
407
+ ( __param(2, IDebugVisualizerService))
408
+ ], MainThreadDebugService);
409
+ class ExtensionHostDebugAdapter extends AbstractDebugAdapter {
410
+ constructor(_ds, _handle, _proxy, session) {
411
+ super();
412
+ this._ds = _ds;
413
+ this._handle = _handle;
414
+ this._proxy = _proxy;
415
+ this.session = session;
416
+ }
417
+ fireError(handle, err) {
418
+ this._onError.fire(err);
419
+ }
420
+ fireExit(handle, code, signal) {
421
+ this._onExit.fire(code);
422
+ }
423
+ startSession() {
424
+ return Promise.resolve(this._proxy.$startDASession(this._handle, this._ds.getSessionDto(this.session)));
425
+ }
426
+ sendMessage(message) {
427
+ this._proxy.$sendDAMessage(this._handle, convertToDAPaths(message, true));
428
+ }
429
+ async stopSession() {
430
+ await this.cancelPendingRequests();
431
+ return Promise.resolve(this._proxy.$stopDASession(this._handle));
432
+ }
433
+ }
434
+
435
+ export { MainThreadDebugService };
@@ -0,0 +1,102 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
3
+ import { Emitter } from 'vscode/vscode/vs/base/common/event';
4
+ import { dispose } from 'vscode/vscode/vs/base/common/lifecycle';
5
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
6
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
7
+ import { IDecorationsService } from 'vscode/vscode/vs/workbench/services/decorations/common/decorations';
8
+ import { CancellationToken } from 'vscode/vscode/vs/base/common/cancellation';
9
+
10
+ class DecorationRequestsQueue {
11
+ constructor(_proxy, _handle) {
12
+ this._proxy = _proxy;
13
+ this._handle = _handle;
14
+ this._idPool = 0;
15
+ this._requests = ( new Map());
16
+ this._resolver = ( new Map());
17
+ }
18
+ enqueue(uri, token) {
19
+ const id = ++this._idPool;
20
+ const result = ( new Promise(resolve => {
21
+ this._requests.set(id, { id, uri });
22
+ this._resolver.set(id, resolve);
23
+ this._processQueue();
24
+ }));
25
+ const sub = token.onCancellationRequested(() => {
26
+ this._requests.delete(id);
27
+ this._resolver.delete(id);
28
+ });
29
+ return result.finally(() => sub.dispose());
30
+ }
31
+ _processQueue() {
32
+ if (typeof this._timer === 'number') {
33
+ return;
34
+ }
35
+ this._timer = setTimeout(() => {
36
+ const requests = this._requests;
37
+ const resolver = this._resolver;
38
+ this._proxy.$provideDecorations(this._handle, [...( requests.values())], CancellationToken.None).then(data => {
39
+ for (const [id, resolve] of resolver) {
40
+ resolve(data[id]);
41
+ }
42
+ });
43
+ this._requests = ( new Map());
44
+ this._resolver = ( new Map());
45
+ this._timer = undefined;
46
+ }, 0);
47
+ }
48
+ }
49
+ let MainThreadDecorations = class MainThreadDecorations {
50
+ constructor(context, _decorationsService) {
51
+ this._decorationsService = _decorationsService;
52
+ this._provider = ( new Map());
53
+ this._proxy = ( context.getProxy(ExtHostContext.ExtHostDecorations));
54
+ }
55
+ dispose() {
56
+ this._provider.forEach(value => dispose(value));
57
+ this._provider.clear();
58
+ }
59
+ $registerDecorationProvider(handle, label) {
60
+ const emitter = ( new Emitter());
61
+ const queue = ( new DecorationRequestsQueue(this._proxy, handle));
62
+ const registration = this._decorationsService.registerDecorationsProvider({
63
+ label,
64
+ onDidChange: emitter.event,
65
+ provideDecorations: async (uri, token) => {
66
+ const data = await queue.enqueue(uri, token);
67
+ if (!data) {
68
+ return undefined;
69
+ }
70
+ const [bubble, tooltip, letter, themeColor] = data;
71
+ return {
72
+ weight: 10,
73
+ bubble: bubble ?? false,
74
+ color: themeColor?.id,
75
+ tooltip,
76
+ letter
77
+ };
78
+ }
79
+ });
80
+ this._provider.set(handle, [emitter, registration]);
81
+ }
82
+ $onDidChange(handle, resources) {
83
+ const provider = this._provider.get(handle);
84
+ if (provider) {
85
+ const [emitter] = provider;
86
+ emitter.fire(resources && ( resources.map(r => URI.revive(r))));
87
+ }
88
+ }
89
+ $unregisterDecorationProvider(handle) {
90
+ const provider = this._provider.get(handle);
91
+ if (provider) {
92
+ dispose(provider);
93
+ this._provider.delete(handle);
94
+ }
95
+ }
96
+ };
97
+ MainThreadDecorations = __decorate([
98
+ extHostNamedCustomer(MainContext.MainThreadDecorations),
99
+ ( __param(1, IDecorationsService))
100
+ ], MainThreadDecorations);
101
+
102
+ export { MainThreadDecorations };
@@ -0,0 +1,69 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { IMarkerService } from 'vscode/vscode/vs/platform/markers/common/markers';
3
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
4
+ import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
5
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
6
+ import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
7
+
8
+ let MainThreadDiagnostics = class MainThreadDiagnostics {
9
+ constructor(extHostContext, _markerService, _uriIdentService) {
10
+ this._markerService = _markerService;
11
+ this._uriIdentService = _uriIdentService;
12
+ this._activeOwners = ( new Set());
13
+ this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostDiagnostics));
14
+ this._markerListener = this._markerService.onMarkerChanged(this._forwardMarkers, this);
15
+ }
16
+ dispose() {
17
+ this._markerListener.dispose();
18
+ this._activeOwners.forEach(owner => this._markerService.changeAll(owner, []));
19
+ this._activeOwners.clear();
20
+ }
21
+ _forwardMarkers(resources) {
22
+ const data = [];
23
+ for (const resource of resources) {
24
+ const allMarkerData = this._markerService.read({ resource });
25
+ if (allMarkerData.length === 0) {
26
+ data.push([resource, []]);
27
+ }
28
+ else {
29
+ const forgeinMarkerData = allMarkerData.filter(marker => !( this._activeOwners.has(marker.owner)));
30
+ if (forgeinMarkerData.length > 0) {
31
+ data.push([resource, forgeinMarkerData]);
32
+ }
33
+ }
34
+ }
35
+ if (data.length > 0) {
36
+ this._proxy.$acceptMarkersChange(data);
37
+ }
38
+ }
39
+ $changeMany(owner, entries) {
40
+ for (const entry of entries) {
41
+ const [uri, markers] = entry;
42
+ if (markers) {
43
+ for (const marker of markers) {
44
+ if (marker.relatedInformation) {
45
+ for (const relatedInformation of marker.relatedInformation) {
46
+ relatedInformation.resource = URI.revive(relatedInformation.resource);
47
+ }
48
+ }
49
+ if (marker.code && typeof marker.code !== 'string') {
50
+ marker.code.target = URI.revive(marker.code.target);
51
+ }
52
+ }
53
+ }
54
+ this._markerService.changeOne(owner, this._uriIdentService.asCanonicalUri(URI.revive(uri)), markers);
55
+ }
56
+ this._activeOwners.add(owner);
57
+ }
58
+ $clear(owner) {
59
+ this._markerService.changeAll(owner, []);
60
+ this._activeOwners.delete(owner);
61
+ }
62
+ };
63
+ MainThreadDiagnostics = __decorate([
64
+ extHostNamedCustomer(MainContext.MainThreadDiagnostics),
65
+ ( __param(1, IMarkerService)),
66
+ ( __param(2, IUriIdentityService))
67
+ ], MainThreadDiagnostics);
68
+
69
+ export { MainThreadDiagnostics };
@@ -0,0 +1,68 @@
1
+ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { URI } from 'vscode/vscode/vs/base/common/uri';
3
+ import { MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
4
+ import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
5
+ import '../../../../../../override/vs/platform/dialogs/common/dialogs.js';
6
+ import { Schemas } from 'vscode/vscode/vs/base/common/network';
7
+ import { IFileDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
8
+
9
+ var MainThreadDialogs_1;
10
+ let MainThreadDialogs = MainThreadDialogs_1 = class MainThreadDialogs {
11
+ constructor(context, _fileDialogService) {
12
+ this._fileDialogService = _fileDialogService;
13
+ }
14
+ dispose() {
15
+ }
16
+ async $showOpenDialog(options) {
17
+ const convertedOptions = MainThreadDialogs_1._convertOpenOptions(options);
18
+ if (!convertedOptions.defaultUri) {
19
+ convertedOptions.defaultUri = await this._fileDialogService.defaultFilePath();
20
+ }
21
+ return Promise.resolve(this._fileDialogService.showOpenDialog(convertedOptions));
22
+ }
23
+ async $showSaveDialog(options) {
24
+ const convertedOptions = MainThreadDialogs_1._convertSaveOptions(options);
25
+ if (!convertedOptions.defaultUri) {
26
+ convertedOptions.defaultUri = await this._fileDialogService.defaultFilePath();
27
+ }
28
+ return Promise.resolve(this._fileDialogService.showSaveDialog(convertedOptions));
29
+ }
30
+ static _convertOpenOptions(options) {
31
+ const result = {
32
+ openLabel: options?.openLabel || undefined,
33
+ canSelectFiles: options?.canSelectFiles || (!options?.canSelectFiles && !options?.canSelectFolders),
34
+ canSelectFolders: options?.canSelectFolders,
35
+ canSelectMany: options?.canSelectMany,
36
+ defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined,
37
+ title: options?.title || undefined,
38
+ availableFileSystems: options?.allowUIResources ? [Schemas.vscodeRemote, Schemas.file] : []
39
+ };
40
+ if (options?.filters) {
41
+ result.filters = [];
42
+ for (const [key, value] of Object.entries(options.filters)) {
43
+ result.filters.push({ name: key, extensions: value });
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ static _convertSaveOptions(options) {
49
+ const result = {
50
+ defaultUri: options?.defaultUri ? URI.revive(options.defaultUri) : undefined,
51
+ saveLabel: options?.saveLabel || undefined,
52
+ title: options?.title || undefined
53
+ };
54
+ if (options?.filters) {
55
+ result.filters = [];
56
+ for (const [key, value] of Object.entries(options.filters)) {
57
+ result.filters.push({ name: key, extensions: value });
58
+ }
59
+ }
60
+ return result;
61
+ }
62
+ };
63
+ MainThreadDialogs = MainThreadDialogs_1 = __decorate([
64
+ extHostNamedCustomer(MainContext.MainThreadDialogs),
65
+ ( __param(1, IFileDialogService))
66
+ ], MainThreadDialogs);
67
+
68
+ export { MainThreadDialogs };