@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,41 +0,0 @@
1
- function extHostNamedCustomer(id) {
2
- return function (ctor) {
3
- ExtHostCustomersRegistryImpl.INSTANCE.registerNamedCustomer(id, ctor);
4
- };
5
- }
6
- function extHostCustomer(ctor) {
7
- ExtHostCustomersRegistryImpl.INSTANCE.registerCustomer(ctor);
8
- }
9
- var ExtHostCustomersRegistry;
10
- ( (function(ExtHostCustomersRegistry) {
11
- function getNamedCustomers() {
12
- return ExtHostCustomersRegistryImpl.INSTANCE.getNamedCustomers();
13
- }
14
- ExtHostCustomersRegistry.getNamedCustomers = getNamedCustomers;
15
- function getCustomers() {
16
- return ExtHostCustomersRegistryImpl.INSTANCE.getCustomers();
17
- }
18
- ExtHostCustomersRegistry.getCustomers = getCustomers;
19
- })(ExtHostCustomersRegistry || (ExtHostCustomersRegistry = {})));
20
- class ExtHostCustomersRegistryImpl {
21
- static { this.INSTANCE = ( new ExtHostCustomersRegistryImpl()); }
22
- constructor() {
23
- this._namedCustomers = [];
24
- this._customers = [];
25
- }
26
- registerNamedCustomer(id, ctor) {
27
- const entry = [id, ctor];
28
- this._namedCustomers.push(entry);
29
- }
30
- getNamedCustomers() {
31
- return this._namedCustomers;
32
- }
33
- registerCustomer(ctor) {
34
- this._customers.push(ctor);
35
- }
36
- getCustomers() {
37
- return this._customers;
38
- }
39
- }
40
-
41
- export { ExtHostCustomersRegistry, extHostCustomer, extHostNamedCustomer };
@@ -1,25 +0,0 @@
1
- import { Schemas } from 'vscode/vscode/vs/base/common/network';
2
-
3
- function parseExtensionDevOptions(environmentService) {
4
- const isExtensionDevHost = environmentService.isExtensionDevelopment;
5
- let debugOk = true;
6
- const extDevLocs = environmentService.extensionDevelopmentLocationURI;
7
- if (extDevLocs) {
8
- for (const x of extDevLocs) {
9
- if (x.scheme !== Schemas.file) {
10
- debugOk = false;
11
- }
12
- }
13
- }
14
- const isExtensionDevDebug = debugOk && typeof environmentService.debugExtensionHost.port === 'number';
15
- const isExtensionDevDebugBrk = debugOk && !!environmentService.debugExtensionHost.break;
16
- const isExtensionDevTestFromCli = isExtensionDevHost && !!environmentService.extensionTestsLocationURI && !environmentService.debugExtensionHost.debugId;
17
- return {
18
- isExtensionDevHost,
19
- isExtensionDevDebug,
20
- isExtensionDevDebugBrk,
21
- isExtensionDevTestFromCli
22
- };
23
- }
24
-
25
- export { parseExtensionDevOptions };
@@ -1,512 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
- import { IntervalTimer } from 'vscode/vscode/vs/base/common/async';
3
- import { VSBuffer } from 'vscode/vscode/vs/base/common/buffer';
4
- import { onUnexpectedError } from 'vscode/vscode/vs/base/common/errors';
5
- import { Emitter } from 'vscode/vscode/vs/base/common/event';
6
- import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
7
- import { StopWatch } from 'vscode/vscode/vs/base/common/stopwatch';
8
- import { localize2WithPath } from 'vscode/vscode/vs/nls';
9
- import { Categories } from 'vscode/vscode/vs/platform/action/common/actionCommonCategories';
10
- import { registerAction2, Action2 } from 'vscode/vscode/vs/platform/actions/common/actions';
11
- import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
12
- import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
13
- import { RemoteAuthorityResolverErrorCode, getRemoteAuthorityPrefix } from 'vscode/vscode/vs/platform/remote/common/remoteAuthorityResolver';
14
- import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
15
- import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
16
- import { IWorkbenchEnvironmentService } from 'vscode/vscode/vs/workbench/services/environment/common/environmentService';
17
- import { ExtHostCustomersRegistry } from './extHostCustomers.js';
18
- import { extensionHostKindToString } from 'vscode/vscode/vs/workbench/services/extensions/common/extensionHostKind';
19
- import { RPCProtocol } from 'vscode/vscode/vs/workbench/services/extensions/common/rpcProtocol';
20
-
21
- var ExtensionHostManager_1;
22
- let ExtensionHostManager = ExtensionHostManager_1 = class ExtensionHostManager extends Disposable {
23
- get pid() {
24
- return this._extensionHost.pid;
25
- }
26
- get kind() {
27
- return this._extensionHost.runningLocation.kind;
28
- }
29
- get startup() {
30
- return this._extensionHost.startup;
31
- }
32
- get friendyName() {
33
- return friendlyExtHostName(this.kind, this.pid);
34
- }
35
- constructor(extensionHost, initialActivationEvents, _internalExtensionService, _instantiationService, _environmentService, _telemetryService, _logService) {
36
- super();
37
- this._internalExtensionService = _internalExtensionService;
38
- this._instantiationService = _instantiationService;
39
- this._environmentService = _environmentService;
40
- this._telemetryService = _telemetryService;
41
- this._logService = _logService;
42
- this._onDidChangeResponsiveState = this._register(( new Emitter()));
43
- this.onDidChangeResponsiveState = this._onDidChangeResponsiveState.event;
44
- this._hasStarted = false;
45
- this._cachedActivationEvents = ( new Map());
46
- this._resolvedActivationEvents = ( new Set());
47
- this._rpcProtocol = null;
48
- this._customers = [];
49
- this._extensionHost = extensionHost;
50
- this.onDidExit = this._extensionHost.onExit;
51
- const startingTelemetryEvent = {
52
- time: Date.now(),
53
- action: 'starting',
54
- kind: extensionHostKindToString(this.kind)
55
- };
56
- this._telemetryService.publicLog2('extensionHostStartup', startingTelemetryEvent);
57
- this._proxy = this._extensionHost.start().then((protocol) => {
58
- this._hasStarted = true;
59
- const successTelemetryEvent = {
60
- time: Date.now(),
61
- action: 'success',
62
- kind: extensionHostKindToString(this.kind)
63
- };
64
- this._telemetryService.publicLog2('extensionHostStartup', successTelemetryEvent);
65
- return this._createExtensionHostCustomers(this.kind, protocol);
66
- }, (err) => {
67
- this._logService.error(`Error received from starting extension host (kind: ${extensionHostKindToString(this.kind)})`);
68
- this._logService.error(err);
69
- const failureTelemetryEvent = {
70
- time: Date.now(),
71
- action: 'error',
72
- kind: extensionHostKindToString(this.kind)
73
- };
74
- if (err && err.name) {
75
- failureTelemetryEvent.errorName = err.name;
76
- }
77
- if (err && err.message) {
78
- failureTelemetryEvent.errorMessage = err.message;
79
- }
80
- if (err && err.stack) {
81
- failureTelemetryEvent.errorStack = err.stack;
82
- }
83
- this._telemetryService.publicLog2('extensionHostStartup', failureTelemetryEvent);
84
- return null;
85
- });
86
- this._proxy.then(() => {
87
- initialActivationEvents.forEach((activationEvent) => this.activateByEvent(activationEvent, 0 ));
88
- this._register(registerLatencyTestProvider({
89
- measure: () => this.measure()
90
- }));
91
- });
92
- }
93
- dispose() {
94
- if (this._extensionHost) {
95
- this._extensionHost.dispose();
96
- }
97
- if (this._rpcProtocol) {
98
- this._rpcProtocol.dispose();
99
- }
100
- for (let i = 0, len = this._customers.length; i < len; i++) {
101
- const customer = this._customers[i];
102
- try {
103
- customer.dispose();
104
- }
105
- catch (err) {
106
- onUnexpectedError(err);
107
- }
108
- }
109
- this._proxy = null;
110
- super.dispose();
111
- }
112
- async measure() {
113
- const proxy = await this._proxy;
114
- if (!proxy) {
115
- return null;
116
- }
117
- const latency = await this._measureLatency(proxy);
118
- const down = await this._measureDown(proxy);
119
- const up = await this._measureUp(proxy);
120
- return {
121
- remoteAuthority: this._extensionHost.remoteAuthority,
122
- latency,
123
- down,
124
- up
125
- };
126
- }
127
- async ready() {
128
- await this._proxy;
129
- }
130
- async _measureLatency(proxy) {
131
- const COUNT = 10;
132
- let sum = 0;
133
- for (let i = 0; i < COUNT; i++) {
134
- const sw = StopWatch.create();
135
- await proxy.test_latency(i);
136
- sw.stop();
137
- sum += sw.elapsed();
138
- }
139
- return (sum / COUNT);
140
- }
141
- static _convert(byteCount, elapsedMillis) {
142
- return (byteCount * 1000 * 8) / elapsedMillis;
143
- }
144
- async _measureUp(proxy) {
145
- const SIZE = 10 * 1024 * 1024;
146
- const buff = VSBuffer.alloc(SIZE);
147
- const value = Math.ceil(Math.random() * 256);
148
- for (let i = 0; i < buff.byteLength; i++) {
149
- buff.writeUInt8(i, value);
150
- }
151
- const sw = StopWatch.create();
152
- await proxy.test_up(buff);
153
- sw.stop();
154
- return ExtensionHostManager_1._convert(SIZE, sw.elapsed());
155
- }
156
- async _measureDown(proxy) {
157
- const SIZE = 10 * 1024 * 1024;
158
- const sw = StopWatch.create();
159
- await proxy.test_down(SIZE);
160
- sw.stop();
161
- return ExtensionHostManager_1._convert(SIZE, sw.elapsed());
162
- }
163
- _createExtensionHostCustomers(kind, protocol) {
164
- let logger = null;
165
- if (this._environmentService.logExtensionHostCommunication) {
166
- logger = ( new RPCLogger(kind));
167
- }
168
- else if (TelemetryRPCLogger.isEnabled()) {
169
- logger = ( new TelemetryRPCLogger(this._telemetryService));
170
- }
171
- this._rpcProtocol = ( new RPCProtocol(protocol, logger));
172
- this._register(this._rpcProtocol.onDidChangeResponsiveState((responsiveState) => this._onDidChangeResponsiveState.fire(responsiveState)));
173
- let extensionHostProxy = null;
174
- let mainProxyIdentifiers = [];
175
- const extHostContext = {
176
- remoteAuthority: this._extensionHost.remoteAuthority,
177
- extensionHostKind: this.kind,
178
- getProxy: (identifier) => ( this._rpcProtocol.getProxy(identifier)),
179
- set: (identifier, instance) => this._rpcProtocol.set(identifier, instance),
180
- dispose: () => this._rpcProtocol.dispose(),
181
- assertRegistered: (identifiers) => this._rpcProtocol.assertRegistered(identifiers),
182
- drain: () => this._rpcProtocol.drain(),
183
- internalExtensionService: this._internalExtensionService,
184
- _setExtensionHostProxy: (value) => {
185
- extensionHostProxy = value;
186
- },
187
- _setAllMainProxyIdentifiers: (value) => {
188
- mainProxyIdentifiers = value;
189
- },
190
- };
191
- const namedCustomers = ExtHostCustomersRegistry.getNamedCustomers();
192
- for (let i = 0, len = namedCustomers.length; i < len; i++) {
193
- const [id, ctor] = namedCustomers[i];
194
- try {
195
- const instance = this._instantiationService.createInstance(ctor, extHostContext);
196
- this._customers.push(instance);
197
- this._rpcProtocol.set(id, instance);
198
- }
199
- catch (err) {
200
- this._logService.error(`Cannot instantiate named customer: '${id.sid}'`);
201
- this._logService.error(err);
202
- onUnexpectedError(err);
203
- }
204
- }
205
- const customers = ExtHostCustomersRegistry.getCustomers();
206
- for (const ctor of customers) {
207
- try {
208
- const instance = this._instantiationService.createInstance(ctor, extHostContext);
209
- this._customers.push(instance);
210
- }
211
- catch (err) {
212
- this._logService.error(err);
213
- onUnexpectedError(err);
214
- }
215
- }
216
- if (!extensionHostProxy) {
217
- throw new Error(`Missing IExtensionHostProxy!`);
218
- }
219
- this._rpcProtocol.assertRegistered(mainProxyIdentifiers);
220
- return extensionHostProxy;
221
- }
222
- async activate(extension, reason) {
223
- const proxy = await this._proxy;
224
- if (!proxy) {
225
- return false;
226
- }
227
- return proxy.activate(extension, reason);
228
- }
229
- activateByEvent(activationEvent, activationKind) {
230
- if (activationKind === 1 && !this._hasStarted) {
231
- return Promise.resolve();
232
- }
233
- if (!( this._cachedActivationEvents.has(activationEvent))) {
234
- this._cachedActivationEvents.set(activationEvent, this._activateByEvent(activationEvent, activationKind));
235
- }
236
- return this._cachedActivationEvents.get(activationEvent);
237
- }
238
- activationEventIsDone(activationEvent) {
239
- return ( this._resolvedActivationEvents.has(activationEvent));
240
- }
241
- async _activateByEvent(activationEvent, activationKind) {
242
- if (!this._proxy) {
243
- return;
244
- }
245
- const proxy = await this._proxy;
246
- if (!proxy) {
247
- return;
248
- }
249
- if (!this._extensionHost.extensions.containsActivationEvent(activationEvent)) {
250
- this._resolvedActivationEvents.add(activationEvent);
251
- return;
252
- }
253
- await proxy.activateByEvent(activationEvent, activationKind);
254
- this._resolvedActivationEvents.add(activationEvent);
255
- }
256
- async getInspectPort(tryEnableInspector) {
257
- if (this._extensionHost) {
258
- if (tryEnableInspector) {
259
- await this._extensionHost.enableInspectPort();
260
- }
261
- const port = this._extensionHost.getInspectPort();
262
- if (port) {
263
- return port;
264
- }
265
- }
266
- return 0;
267
- }
268
- async resolveAuthority(remoteAuthority, resolveAttempt) {
269
- const sw = StopWatch.create(false);
270
- const prefix = () => `[${extensionHostKindToString(this._extensionHost.runningLocation.kind)}${this._extensionHost.runningLocation.affinity}][resolveAuthority(${getRemoteAuthorityPrefix(remoteAuthority)},${resolveAttempt})][${sw.elapsed()}ms] `;
271
- const logInfo = (msg) => this._logService.info(`${prefix()}${msg}`);
272
- const logError = (msg, err = undefined) => this._logService.error(`${prefix()}${msg}`, err);
273
- logInfo(`obtaining proxy...`);
274
- const proxy = await this._proxy;
275
- if (!proxy) {
276
- logError(`no proxy`);
277
- return {
278
- type: 'error',
279
- error: {
280
- message: `Cannot resolve authority`,
281
- code: RemoteAuthorityResolverErrorCode.Unknown,
282
- detail: undefined
283
- }
284
- };
285
- }
286
- logInfo(`invoking...`);
287
- const intervalLogger = ( new IntervalTimer());
288
- try {
289
- intervalLogger.cancelAndSet(() => logInfo('waiting...'), 1000);
290
- const resolverResult = await proxy.resolveAuthority(remoteAuthority, resolveAttempt);
291
- intervalLogger.dispose();
292
- if (resolverResult.type === 'ok') {
293
- logInfo(`returned ${resolverResult.value.authority.connectTo}`);
294
- }
295
- else {
296
- logError(`returned an error`, resolverResult.error);
297
- }
298
- return resolverResult;
299
- }
300
- catch (err) {
301
- intervalLogger.dispose();
302
- logError(`returned an error`, err);
303
- return {
304
- type: 'error',
305
- error: {
306
- message: err.message,
307
- code: RemoteAuthorityResolverErrorCode.Unknown,
308
- detail: err
309
- }
310
- };
311
- }
312
- }
313
- async getCanonicalURI(remoteAuthority, uri) {
314
- const proxy = await this._proxy;
315
- if (!proxy) {
316
- throw new Error(`Cannot resolve canonical URI`);
317
- }
318
- return proxy.getCanonicalURI(remoteAuthority, uri);
319
- }
320
- async start(extensionRegistryVersionId, allExtensions, myExtensions) {
321
- const proxy = await this._proxy;
322
- if (!proxy) {
323
- return;
324
- }
325
- const deltaExtensions = this._extensionHost.extensions.set(extensionRegistryVersionId, allExtensions, myExtensions);
326
- return proxy.startExtensionHost(deltaExtensions);
327
- }
328
- async extensionTestsExecute() {
329
- const proxy = await this._proxy;
330
- if (!proxy) {
331
- throw new Error('Could not obtain Extension Host Proxy');
332
- }
333
- return proxy.extensionTestsExecute();
334
- }
335
- representsRunningLocation(runningLocation) {
336
- return this._extensionHost.runningLocation.equals(runningLocation);
337
- }
338
- async deltaExtensions(incomingExtensionsDelta) {
339
- const proxy = await this._proxy;
340
- if (!proxy) {
341
- return;
342
- }
343
- const outgoingExtensionsDelta = this._extensionHost.extensions.delta(incomingExtensionsDelta);
344
- if (!outgoingExtensionsDelta) {
345
- return;
346
- }
347
- return proxy.deltaExtensions(outgoingExtensionsDelta);
348
- }
349
- containsExtension(extensionId) {
350
- return this._extensionHost.extensions?.containsExtension(extensionId) ?? false;
351
- }
352
- async setRemoteEnvironment(env) {
353
- const proxy = await this._proxy;
354
- if (!proxy) {
355
- return;
356
- }
357
- return proxy.setRemoteEnvironment(env);
358
- }
359
- };
360
- ExtensionHostManager = ExtensionHostManager_1 = ( __decorate([
361
- ( __param(3, IInstantiationService)),
362
- ( __param(4, IWorkbenchEnvironmentService)),
363
- ( __param(5, ITelemetryService)),
364
- ( __param(6, ILogService))
365
- ], ExtensionHostManager));
366
- function friendlyExtHostName(kind, pid) {
367
- if (pid) {
368
- return `${extensionHostKindToString(kind)} pid: ${pid}`;
369
- }
370
- return `${extensionHostKindToString(kind)}`;
371
- }
372
- const colorTables = [
373
- ['#2977B1', '#FC802D', '#34A13A', '#D3282F', '#9366BA'],
374
- ['#8B564C', '#E177C0', '#7F7F7F', '#BBBE3D', '#2EBECD']
375
- ];
376
- function prettyWithoutArrays(data) {
377
- if (Array.isArray(data)) {
378
- return data;
379
- }
380
- if (data && typeof data === 'object' && typeof data.toString === 'function') {
381
- const result = ( data.toString());
382
- if (result !== '[object Object]') {
383
- return result;
384
- }
385
- }
386
- return data;
387
- }
388
- function pretty(data) {
389
- if (Array.isArray(data)) {
390
- return ( data.map(prettyWithoutArrays));
391
- }
392
- return prettyWithoutArrays(data);
393
- }
394
- class RPCLogger {
395
- constructor(_kind) {
396
- this._kind = _kind;
397
- this._totalIncoming = 0;
398
- this._totalOutgoing = 0;
399
- }
400
- _log(direction, totalLength, msgLength, req, initiator, str, data) {
401
- data = pretty(data);
402
- const colorTable = colorTables[initiator];
403
- const color = colorTable[req % colorTable.length] ;
404
- let args = [`%c[${extensionHostKindToString(this._kind)}][${direction}]%c[${String(totalLength).padStart(7)}]%c[len: ${String(msgLength).padStart(5)}]%c${String(req).padStart(5)} - ${str}`, 'color: darkgreen', 'color: grey', 'color: grey', `color: ${color}`];
405
- if (/\($/.test(str)) {
406
- args = args.concat(data);
407
- args.push(')');
408
- }
409
- else {
410
- args.push(data);
411
- }
412
- console.log.apply(console, args);
413
- }
414
- logIncoming(msgLength, req, initiator, str, data) {
415
- this._totalIncoming += msgLength;
416
- this._log('Ext \u2192 Win', this._totalIncoming, msgLength, req, initiator, str, data);
417
- }
418
- logOutgoing(msgLength, req, initiator, str, data) {
419
- this._totalOutgoing += msgLength;
420
- this._log('Win \u2192 Ext', this._totalOutgoing, msgLength, req, initiator, str, data);
421
- }
422
- }
423
- let TelemetryRPCLogger = class TelemetryRPCLogger {
424
- static isEnabled() {
425
- return Math.trunc(Math.random() * 1000) < 0.5;
426
- }
427
- constructor(_telemetryService) {
428
- this._telemetryService = _telemetryService;
429
- this._pendingRequests = ( new Map());
430
- }
431
- logIncoming(msgLength, req, initiator, str) {
432
- if (initiator === 0 && /^receiveReply(Err)?:/.test(str)) {
433
- const requestStr = this._pendingRequests.get(req) ?? 'unknown_reply';
434
- this._pendingRequests.delete(req);
435
- this._telemetryService.publicLog2('extensionhost.incoming', {
436
- type: `${str} ${requestStr}`,
437
- length: msgLength
438
- });
439
- }
440
- if (initiator === 1 && /^receiveRequest /.test(str)) {
441
- this._telemetryService.publicLog2('extensionhost.incoming', {
442
- type: `${str}`,
443
- length: msgLength
444
- });
445
- }
446
- }
447
- logOutgoing(msgLength, req, initiator, str) {
448
- if (initiator === 0 && str.startsWith('request: ')) {
449
- this._pendingRequests.set(req, str);
450
- this._telemetryService.publicLog2('extensionhost.outgoing', {
451
- type: str,
452
- length: msgLength
453
- });
454
- }
455
- }
456
- };
457
- TelemetryRPCLogger = ( __decorate([
458
- ( __param(0, ITelemetryService))
459
- ], TelemetryRPCLogger));
460
- const providers = [];
461
- function registerLatencyTestProvider(provider) {
462
- providers.push(provider);
463
- return {
464
- dispose: () => {
465
- for (let i = 0; i < providers.length; i++) {
466
- if (providers[i] === provider) {
467
- providers.splice(i, 1);
468
- return;
469
- }
470
- }
471
- }
472
- };
473
- }
474
- function getLatencyTestProviders() {
475
- return providers.slice(0);
476
- }
477
- registerAction2(class MeasureExtHostLatencyAction extends Action2 {
478
- constructor() {
479
- super({
480
- id: 'editor.action.measureExtHostLatency',
481
- title: ( localize2WithPath(
482
- 'vs/workbench/services/extensions/common/extensionHostManager',
483
- 'measureExtHostLatency',
484
- "Measure Extension Host Latency"
485
- )),
486
- category: Categories.Developer,
487
- f1: true
488
- });
489
- }
490
- async run(accessor) {
491
- const editorService = accessor.get(IEditorService);
492
- const measurements = await Promise.all(( getLatencyTestProviders().map(provider => provider.measure())));
493
- editorService.openEditor({ resource: undefined, contents: ( measurements.map(MeasureExtHostLatencyAction._print)).join('\n\n'), options: { pinned: true } });
494
- }
495
- static _print(m) {
496
- if (!m) {
497
- return '';
498
- }
499
- return `${m.remoteAuthority ? `Authority: ${m.remoteAuthority}\n` : ``}Roundtrip latency: ${m.latency.toFixed(3)}ms\nUp: ${MeasureExtHostLatencyAction._printSpeed(m.up)}\nDown: ${MeasureExtHostLatencyAction._printSpeed(m.down)}\n`;
500
- }
501
- static _printSpeed(n) {
502
- if (n <= 1024) {
503
- return `${n} bps`;
504
- }
505
- if (n < 1024 * 1024) {
506
- return `${(n / 1024).toFixed(1)} kbps`;
507
- }
508
- return `${(n / 1024 / 1024).toFixed(1)} Mbps`;
509
- }
510
- });
511
-
512
- export { ExtensionHostManager, friendlyExtHostName };