@codingame/monaco-vscode-extensions-service-override 37.2.0 → 37.3.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.
- package/package.json +3 -3
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +37 -37
- package/vscode/src/vs/workbench/api/browser/mainThreadAgentEditorComments.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +31 -31
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +6 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +8 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +6 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +3 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentDiff.js +4 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +7 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +10 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +12 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +20 -20
- package/vscode/src/vs/workbench/api/browser/mainThreadGitExtensionService.js +4 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +15 -15
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +6 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +3 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +3 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +7 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.d.ts +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +1 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +12 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +13 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +6 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +14 -12
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +25 -25
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +37 -32
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +18 -10
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +55 -45
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +4 -4
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +3 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +4 -2
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +4 -4
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +4 -2
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +5 -5
|
@@ -152,7 +152,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
if (isCI) {
|
|
155
|
-
this._logService.info(
|
|
155
|
+
this._logService.info(
|
|
156
|
+
`AbstractExtensionService.onEnablementChanged fired for ${extensions.map(e => e.identifier.id).join(", ")}`
|
|
157
|
+
);
|
|
156
158
|
}
|
|
157
159
|
this._handleDeltaExtensions(( new DeltaExtensionsQueueItem(toAdd, toRemove)));
|
|
158
160
|
}));
|
|
@@ -194,7 +196,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
194
196
|
if (extensions.length) {
|
|
195
197
|
if (isCI) {
|
|
196
198
|
this._logService.info(
|
|
197
|
-
`AbstractExtensionService.onDidInstallExtensions fired for ${
|
|
199
|
+
`AbstractExtensionService.onDidInstallExtensions fired for ${extensions.map(e => e.identifier.id).join(", ")}`
|
|
198
200
|
);
|
|
199
201
|
}
|
|
200
202
|
this._handleDeltaExtensions(( new DeltaExtensionsQueueItem(extensions, toRemove)));
|
|
@@ -222,13 +224,13 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
222
224
|
}
|
|
223
225
|
}, {
|
|
224
226
|
id: "join.disconnectRemote",
|
|
225
|
-
label: ( localize(
|
|
227
|
+
label: ( localize(21861, "Disconnect Remote Agent")),
|
|
226
228
|
order: WillShutdownJoinerOrder.Last
|
|
227
229
|
});
|
|
228
230
|
} else {
|
|
229
231
|
event.join(this._doStopExtensionHosts(), {
|
|
230
232
|
id: "join.stopExtensionHosts",
|
|
231
|
-
label: ( localize(
|
|
233
|
+
label: ( localize(21862, "Stopping Extension Hosts"))
|
|
232
234
|
});
|
|
233
235
|
}
|
|
234
236
|
}));
|
|
@@ -257,7 +259,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
257
259
|
}
|
|
258
260
|
async _deltaExtensions(lock, _toAdd, _toRemove) {
|
|
259
261
|
if (isCI) {
|
|
260
|
-
this._logService.info(
|
|
262
|
+
this._logService.info(
|
|
263
|
+
`AbstractExtensionService._deltaExtensions: toAdd: [${_toAdd.map(e => e.identifier.id).join(",")}] toRemove: [${_toRemove.map(e => typeof e === "string" ? e : e.identifier.id).join(",")}]`
|
|
264
|
+
);
|
|
261
265
|
}
|
|
262
266
|
let toRemove = [];
|
|
263
267
|
for (let i = 0, len = _toRemove.length; i < len; i++) {
|
|
@@ -291,7 +295,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
291
295
|
if (toAdd.length === 0 && toRemove.length === 0) {
|
|
292
296
|
return;
|
|
293
297
|
}
|
|
294
|
-
const result = this._registry.deltaExtensions(lock, toAdd,
|
|
298
|
+
const result = this._registry.deltaExtensions(lock, toAdd, toRemove.map(e => e.identifier));
|
|
295
299
|
this._onDidChangeExtensions.fire({
|
|
296
300
|
added: toAdd,
|
|
297
301
|
removed: toRemove
|
|
@@ -301,24 +305,24 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
301
305
|
this._notificationService.notify({
|
|
302
306
|
severity: Severity.Error,
|
|
303
307
|
message: ( localize(
|
|
304
|
-
|
|
308
|
+
21863,
|
|
305
309
|
"The following extensions contain dependency loops and have been disabled: {0}",
|
|
306
|
-
|
|
310
|
+
result.removedDueToLooping.map(e => `'${e.identifier.value}'`).join(", ")
|
|
307
311
|
))
|
|
308
312
|
});
|
|
309
313
|
}
|
|
310
314
|
this._extensionsProposedApi.updateEnabledApiProposals(toAdd);
|
|
311
315
|
this._doHandleExtensionPoints([].concat(toAdd).concat(toRemove), false);
|
|
312
|
-
await this._updateExtensionsOnExtHosts(result.versionId, toAdd,
|
|
316
|
+
await this._updateExtensionsOnExtHosts(result.versionId, toAdd, toRemove.map(e => e.identifier));
|
|
313
317
|
for (let i = 0; i < toAdd.length; i++) {
|
|
314
318
|
this._activateAddedExtensionIfNeeded(toAdd[i]);
|
|
315
319
|
}
|
|
316
320
|
}
|
|
317
321
|
async _updateExtensionsOnExtHosts(versionId, toAdd, toRemove) {
|
|
318
322
|
const removedRunningLocation = this._runningLocations.deltaExtensions(toAdd, toRemove);
|
|
319
|
-
const promises =
|
|
323
|
+
const promises = this._extensionHostManagers.map(
|
|
320
324
|
extHostManager => this._updateExtensionsOnExtHost(extHostManager, versionId, toAdd, toRemove, removedRunningLocation)
|
|
321
|
-
)
|
|
325
|
+
);
|
|
322
326
|
await Promise.all(promises);
|
|
323
327
|
}
|
|
324
328
|
async _updateExtensionsOnExtHost(extensionHostManager, versionId, toAdd, toRemove, removedRunningLocation) {
|
|
@@ -330,8 +334,8 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
330
334
|
);
|
|
331
335
|
const addActivationEvents = ImplicitActivationEvents.createActivationEventsMap(toAdd);
|
|
332
336
|
if (isCI) {
|
|
333
|
-
const printExtIds = extensions =>
|
|
334
|
-
const printIds = extensions =>
|
|
337
|
+
const printExtIds = extensions => extensions.map(e => e.identifier.value).join(",");
|
|
338
|
+
const printIds = extensions => extensions.map(e => e.value).join(",");
|
|
335
339
|
this._logService.info(
|
|
336
340
|
`AbstractExtensionService: Calling deltaExtensions: toRemove: [${printIds(toRemove)}], toAdd: [${printExtIds(toAdd)}], myToRemove: [${printIds(myToRemove)}], myToAdd: [${printExtIds(myToAdd)}],`
|
|
337
341
|
);
|
|
@@ -342,7 +346,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
342
346
|
toAdd,
|
|
343
347
|
addActivationEvents,
|
|
344
348
|
myToRemove,
|
|
345
|
-
myToAdd:
|
|
349
|
+
myToAdd: myToAdd.map(extension => extension.identifier)
|
|
346
350
|
});
|
|
347
351
|
}
|
|
348
352
|
canAddExtension(extension) {
|
|
@@ -408,7 +412,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
408
412
|
const forceUsingSearch = !!this._environmentService.remoteAuthority;
|
|
409
413
|
const host = {
|
|
410
414
|
logService: this._logService,
|
|
411
|
-
folders:
|
|
415
|
+
folders: workspace.folders.map(folder => folder.uri),
|
|
412
416
|
forceUsingSearch: forceUsingSearch,
|
|
413
417
|
exists: uri => this._fileService.exists(uri),
|
|
414
418
|
checkExists: (folders, includes, token) => this._instantiationService.invokeFunction(accessor => checkGlobFileExists(accessor, folders, includes, token))
|
|
@@ -419,13 +423,13 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
419
423
|
}
|
|
420
424
|
}
|
|
421
425
|
if (shouldActivateReason) {
|
|
422
|
-
await Promise.all(
|
|
426
|
+
await Promise.all(this._extensionHostManagers.map(
|
|
423
427
|
extHostManager => extHostManager.activate(extensionDescription.identifier, {
|
|
424
428
|
startup: false,
|
|
425
429
|
extensionId: extensionDescription.identifier,
|
|
426
430
|
activationEvent: shouldActivateReason
|
|
427
431
|
})
|
|
428
|
-
))
|
|
432
|
+
));
|
|
429
433
|
}
|
|
430
434
|
}
|
|
431
435
|
_initializeIfNeeded() {
|
|
@@ -458,11 +462,11 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
458
462
|
this._pendingRemoteActivationEvents.clear();
|
|
459
463
|
return;
|
|
460
464
|
}
|
|
461
|
-
await Promise.all(
|
|
465
|
+
await Promise.all(remoteExtensionHosts.map(extHost => extHost.ready()));
|
|
462
466
|
for (const activationEvent of this._pendingRemoteActivationEvents) {
|
|
463
|
-
const result = Promise.all(
|
|
467
|
+
const result = Promise.all(remoteExtensionHosts.map(
|
|
464
468
|
extHostManager => extHostManager.activateByEvent(activationEvent, ActivationKind.Normal)
|
|
465
|
-
))
|
|
469
|
+
)).then(() => {});
|
|
466
470
|
this._onWillActivateByEvent.fire({
|
|
467
471
|
event: activationEvent,
|
|
468
472
|
activation: result,
|
|
@@ -528,7 +532,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
528
532
|
e => ExtensionIdentifier.equals(e.identifier, registered.identifier) && ( e.extensionLocation.toString()) === ( registered.extensionLocation.toString())
|
|
529
533
|
)));
|
|
530
534
|
if (toRemove.length) {
|
|
531
|
-
this._registry.deltaExtensions(lock, [],
|
|
535
|
+
this._registry.deltaExtensions(lock, [], toRemove.map(e => e.identifier));
|
|
532
536
|
this._doHandleExtensionPoints(toRemove, true);
|
|
533
537
|
}
|
|
534
538
|
}
|
|
@@ -538,9 +542,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
538
542
|
this._notificationService.notify({
|
|
539
543
|
severity: Severity.Error,
|
|
540
544
|
message: ( localize(
|
|
541
|
-
|
|
545
|
+
21863,
|
|
542
546
|
"The following extensions contain dependency loops and have been disabled: {0}",
|
|
543
|
-
|
|
547
|
+
result.removedDueToLooping.map(e => `'${e.identifier.value}'`).join(", ")
|
|
544
548
|
))
|
|
545
549
|
});
|
|
546
550
|
}
|
|
@@ -553,7 +557,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
553
557
|
const extensionHostManager = this.findTestExtensionHost(this._environmentService.extensionTestsLocationURI);
|
|
554
558
|
if (!extensionHostManager) {
|
|
555
559
|
const msg = ( localize(
|
|
556
|
-
|
|
560
|
+
21864,
|
|
557
561
|
"No extension host found that can launch the test runner at {0}.",
|
|
558
562
|
(this._environmentService.extensionTestsLocationURI.toString())
|
|
559
563
|
));
|
|
@@ -599,7 +603,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
599
603
|
_releaseBarrier() {
|
|
600
604
|
this._installedExtensionsReady.open();
|
|
601
605
|
this._onDidRegisterExtensions.fire(undefined);
|
|
602
|
-
this._onDidChangeExtensionsStatus.fire(
|
|
606
|
+
this._onDidChangeExtensionsStatus.fire(this._registry.getAllExtensionDescriptions().map(e => e.identifier));
|
|
603
607
|
}
|
|
604
608
|
async _resolveAuthorityInitial(remoteAuthority) {
|
|
605
609
|
const MAX_ATTEMPTS = 5;
|
|
@@ -659,9 +663,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
659
663
|
throw ( new Error(`Cannot resolve authority`));
|
|
660
664
|
}
|
|
661
665
|
this._resolveAuthorityAttempt++;
|
|
662
|
-
const results = await Promise.all(
|
|
666
|
+
const results = await Promise.all(extensionHosts.map(
|
|
663
667
|
extHost => extHost.resolveAuthority(remoteAuthority, this._resolveAuthorityAttempt)
|
|
664
|
-
))
|
|
668
|
+
));
|
|
665
669
|
let bestErrorResult = null;
|
|
666
670
|
for (const result of results) {
|
|
667
671
|
if (result.type === "ok") {
|
|
@@ -723,7 +727,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
723
727
|
vetoReasons.add(reason);
|
|
724
728
|
}
|
|
725
729
|
}).catch(error => {
|
|
726
|
-
vetoReasons.add(( localize(
|
|
730
|
+
vetoReasons.add(( localize(21865, "{0} (Error: {1})", reason, toErrorMessage(error))));
|
|
727
731
|
});
|
|
728
732
|
}
|
|
729
733
|
}
|
|
@@ -741,9 +745,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
741
745
|
confirmed
|
|
742
746
|
} = await this._dialogService.confirm({
|
|
743
747
|
type: Severity.Warning,
|
|
744
|
-
message: ( localize(
|
|
748
|
+
message: ( localize(21866, "Please confirm restart of extensions.")),
|
|
745
749
|
detail: vetoReasonsArray.length === 1 ? vetoReasonsArray[0] : vetoReasonsArray.join("\n -"),
|
|
746
|
-
primaryButton: ( localize(
|
|
750
|
+
primaryButton: ( localize(21867, "Restart Anyway"))
|
|
747
751
|
});
|
|
748
752
|
if (confirmed) {
|
|
749
753
|
return true;
|
|
@@ -857,16 +861,16 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
857
861
|
this._remoteCrashTracker.registerCrash();
|
|
858
862
|
if (this._remoteCrashTracker.shouldAutomaticallyRestart()) {
|
|
859
863
|
this._logService.info(`Automatically restarting the remote extension host.`);
|
|
860
|
-
this._notificationService.status(( localize(
|
|
864
|
+
this._notificationService.status(( localize(21868, "The remote extension host terminated unexpectedly. Restarting...")), {
|
|
861
865
|
hideAfter: 5000
|
|
862
866
|
});
|
|
863
867
|
this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
|
|
864
868
|
} else {
|
|
865
869
|
this._notificationService.prompt(Severity.Error, ( localize(
|
|
866
|
-
|
|
870
|
+
21869,
|
|
867
871
|
"Remote Extension host terminated unexpectedly 3 times within the last 5 minutes."
|
|
868
872
|
)), [{
|
|
869
|
-
label: ( localize(
|
|
873
|
+
label: ( localize(21870, "Restart Remote Extension Host")),
|
|
870
874
|
run: () => {
|
|
871
875
|
this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
|
|
872
876
|
}
|
|
@@ -883,7 +887,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
883
887
|
}
|
|
884
888
|
if (activatedExtensions.length > 0) {
|
|
885
889
|
this._logService.error(
|
|
886
|
-
`Extension host (${extensionHost.friendyName}) terminated unexpectedly. The following extensions were running: ${
|
|
890
|
+
`Extension host (${extensionHost.friendyName}) terminated unexpectedly. The following extensions were running: ${activatedExtensions.map(id => id.value).join(", ")}`
|
|
887
891
|
);
|
|
888
892
|
} else {
|
|
889
893
|
this._logService.error(
|
|
@@ -901,7 +905,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
901
905
|
this._startExtensionHostsIfNecessary(false, Array.from(( this._allRequestedActivateEvents.keys())));
|
|
902
906
|
this._startOnDemandExtensionHosts();
|
|
903
907
|
const localProcessExtensionHosts = this._getExtensionHostManagers(ExtensionHostKind.LocalProcess);
|
|
904
|
-
await Promise.all(
|
|
908
|
+
await Promise.all(localProcessExtensionHosts.map(extHost => extHost.ready()));
|
|
905
909
|
} finally {
|
|
906
910
|
lock.dispose();
|
|
907
911
|
}
|
|
@@ -911,7 +915,11 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
911
915
|
for (const extHostManager of this._extensionHostManagers) {
|
|
912
916
|
if (extHostManager.startup !== ExtensionHostStartup.EagerAutoStart) {
|
|
913
917
|
const extensions = this._runningLocations.filterByExtensionHostManager(snapshot.extensions, extHostManager);
|
|
914
|
-
extHostManager.start(
|
|
918
|
+
extHostManager.start(
|
|
919
|
+
snapshot.versionId,
|
|
920
|
+
snapshot.extensions,
|
|
921
|
+
extensions.map(extension => extension.identifier)
|
|
922
|
+
);
|
|
915
923
|
}
|
|
916
924
|
}
|
|
917
925
|
}
|
|
@@ -941,9 +949,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
941
949
|
} else {
|
|
942
950
|
managers = [...this._extensionHostManagers];
|
|
943
951
|
}
|
|
944
|
-
const result = Promise.all(
|
|
952
|
+
const result = Promise.all(managers.map(
|
|
945
953
|
extHostManager => extHostManager.activateByEvent(activationEvent, activationKind)
|
|
946
|
-
))
|
|
954
|
+
)).then(() => {});
|
|
947
955
|
this._onWillActivateByEvent.fire({
|
|
948
956
|
event: activationEvent,
|
|
949
957
|
activation: result,
|
|
@@ -1008,7 +1016,7 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
1008
1016
|
return result;
|
|
1009
1017
|
}
|
|
1010
1018
|
async getInspectPorts(extensionHostKind, tryEnableInspector) {
|
|
1011
|
-
const result = await Promise.all(
|
|
1019
|
+
const result = await Promise.all(this._getExtensionHostManagers(extensionHostKind).map(async extHost => {
|
|
1012
1020
|
let portInfo = await extHost.getInspectPort(tryEnableInspector);
|
|
1013
1021
|
if (portInfo !== undefined) {
|
|
1014
1022
|
portInfo = {
|
|
@@ -1017,11 +1025,11 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
1017
1025
|
};
|
|
1018
1026
|
}
|
|
1019
1027
|
return portInfo;
|
|
1020
|
-
}))
|
|
1028
|
+
}));
|
|
1021
1029
|
return result.filter(isDefined);
|
|
1022
1030
|
}
|
|
1023
1031
|
async setRemoteEnvironment(env) {
|
|
1024
|
-
await
|
|
1032
|
+
await this._extensionHostManagers.map(manager => manager.setRemoteEnvironment(env));
|
|
1025
1033
|
}
|
|
1026
1034
|
_safeInvokeIsEnabled(extension) {
|
|
1027
1035
|
try {
|
|
@@ -1148,7 +1156,9 @@ let AbstractExtensionService = AbstractExtensionService_1 = class AbstractExtens
|
|
|
1148
1156
|
};
|
|
1149
1157
|
}
|
|
1150
1158
|
async _activateById(extensionId, reason) {
|
|
1151
|
-
const results = await Promise.all(
|
|
1159
|
+
const results = await Promise.all(
|
|
1160
|
+
this._extensionHostManagers.map(manager => manager.activate(extensionId, reason))
|
|
1161
|
+
);
|
|
1152
1162
|
const activated = ( results.some(e => e));
|
|
1153
1163
|
if (!activated) {
|
|
1154
1164
|
throw ( new Error(`Unknown extension ${extensionId.value}`));
|
|
@@ -1233,13 +1243,13 @@ class ExtensionHostCollection extends Disposable {
|
|
|
1233
1243
|
}
|
|
1234
1244
|
}
|
|
1235
1245
|
map(callback) {
|
|
1236
|
-
return
|
|
1246
|
+
return this._extensionHostManagers.map(el => callback(el.extensionHost));
|
|
1237
1247
|
}
|
|
1238
1248
|
every(callback) {
|
|
1239
1249
|
return this._extensionHostManagers.every(el => callback(el.extensionHost));
|
|
1240
1250
|
}
|
|
1241
1251
|
filter(callback) {
|
|
1242
|
-
return
|
|
1252
|
+
return this._extensionHostManagers.filter(el => callback(el.extensionHost)).map(el => el.extensionHost);
|
|
1243
1253
|
}
|
|
1244
1254
|
}
|
|
1245
1255
|
class ExtensionHostManagerData {
|
|
@@ -1414,7 +1424,7 @@ class ActivationFeatureMarkdowneRenderer extends Disposable {
|
|
|
1414
1424
|
}
|
|
1415
1425
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
1416
1426
|
id: "activationEvents",
|
|
1417
|
-
label: ( localize(
|
|
1427
|
+
label: ( localize(21871, "Activation Events")),
|
|
1418
1428
|
access: {
|
|
1419
1429
|
canToggle: false
|
|
1420
1430
|
},
|
|
@@ -391,7 +391,7 @@ function prettyWithoutArrays(data) {
|
|
|
391
391
|
}
|
|
392
392
|
function pretty(data) {
|
|
393
393
|
if (Array.isArray(data)) {
|
|
394
|
-
return
|
|
394
|
+
return data.map(prettyWithoutArrays);
|
|
395
395
|
}
|
|
396
396
|
return prettyWithoutArrays(data);
|
|
397
397
|
}
|
|
@@ -485,17 +485,17 @@ registerAction2(class MeasureExtHostLatencyAction extends Action2 {
|
|
|
485
485
|
constructor() {
|
|
486
486
|
super({
|
|
487
487
|
id: "editor.action.measureExtHostLatency",
|
|
488
|
-
title: ( localize2(
|
|
488
|
+
title: ( localize2(21872, "Measure Extension Host Latency")),
|
|
489
489
|
category: Categories.Developer,
|
|
490
490
|
f1: true
|
|
491
491
|
});
|
|
492
492
|
}
|
|
493
493
|
async run(accessor) {
|
|
494
494
|
const editorService = accessor.get(IEditorService);
|
|
495
|
-
const measurements = await Promise.all(
|
|
495
|
+
const measurements = await Promise.all(getLatencyTestProviders().map(provider => provider.measure()));
|
|
496
496
|
editorService.openEditor({
|
|
497
497
|
resource: undefined,
|
|
498
|
-
contents:
|
|
498
|
+
contents: measurements.map(MeasureExtHostLatencyAction._print).join("\n\n"),
|
|
499
499
|
options: {
|
|
500
500
|
pinned: true
|
|
501
501
|
}
|
package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js
CHANGED
|
@@ -194,7 +194,9 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
194
194
|
extensionIds.push(extension.identifier);
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
this._logService.info(
|
|
197
|
+
this._logService.info(
|
|
198
|
+
`Placing extension(s) ${extensionIds.map(e => e.value).join(", ")} on a separate extension host.`
|
|
199
|
+
);
|
|
198
200
|
}
|
|
199
201
|
}
|
|
200
202
|
return {
|
|
@@ -17,7 +17,9 @@ let ExtensionsProposedApi = class ExtensionsProposedApi {
|
|
|
17
17
|
constructor(_logService, _environmentService, productService) {
|
|
18
18
|
this._logService = _logService;
|
|
19
19
|
this._environmentService = _environmentService;
|
|
20
|
-
this._envEnabledExtensions = ( new Set(
|
|
20
|
+
this._envEnabledExtensions = ( new Set(
|
|
21
|
+
(_environmentService.extensionEnabledProposedApi ?? []).map(id => ExtensionIdentifier.toKey(id))
|
|
22
|
+
));
|
|
21
23
|
this._envEnablesProposedApiForAll =
|
|
22
24
|
!_environmentService.isBuilt || (_environmentService.isExtensionDevelopment && productService.quality !== "stable") || (this._envEnabledExtensions.size === 0 && Array.isArray(_environmentService.extensionEnabledProposedApi));
|
|
23
25
|
this._productEnabledExtensions = ( new Map());
|
|
@@ -110,7 +112,7 @@ class ApiProposalsMarkdowneRenderer extends Disposable {
|
|
|
110
112
|
}
|
|
111
113
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
112
114
|
id: "enabledApiProposals",
|
|
113
|
-
label: ( localize(
|
|
115
|
+
label: ( localize(21873, "API Proposals")),
|
|
114
116
|
access: {
|
|
115
117
|
canToggle: false
|
|
116
118
|
},
|
|
@@ -9,7 +9,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
9
9
|
const extension = result.get(systemExtension.identifier);
|
|
10
10
|
if (extension) {
|
|
11
11
|
logService.warn(( localize(
|
|
12
|
-
|
|
12
|
+
21964,
|
|
13
13
|
"Overwriting extension {0} with {1}.",
|
|
14
14
|
extension.extensionLocation.fsPath,
|
|
15
15
|
systemExtension.extensionLocation.fsPath
|
|
@@ -30,7 +30,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
30
30
|
userExtension.isBuiltin = true;
|
|
31
31
|
} else {
|
|
32
32
|
logService.warn(( localize(
|
|
33
|
-
|
|
33
|
+
21964,
|
|
34
34
|
"Overwriting extension {0} with {1}.",
|
|
35
35
|
extension.extensionLocation.fsPath,
|
|
36
36
|
userExtension.extensionLocation.fsPath
|
|
@@ -48,7 +48,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
48
48
|
const extension = result.get(workspaceExtension.identifier);
|
|
49
49
|
if (extension) {
|
|
50
50
|
logService.warn(( localize(
|
|
51
|
-
|
|
51
|
+
21965,
|
|
52
52
|
"Overwriting {0} with Workspace Extension {1}.",
|
|
53
53
|
extension.extensionLocation.fsPath,
|
|
54
54
|
workspaceExtension.extensionLocation.fsPath
|
|
@@ -58,7 +58,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
58
58
|
});
|
|
59
59
|
development.forEach(developedExtension => {
|
|
60
60
|
logService.info(( localize(
|
|
61
|
-
|
|
61
|
+
21966,
|
|
62
62
|
"Loading development extension at {0}",
|
|
63
63
|
developedExtension.extensionLocation.fsPath
|
|
64
64
|
)));
|
package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js
CHANGED
|
@@ -93,7 +93,7 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
93
93
|
}
|
|
94
94
|
if (extensionsDelta.myToAdd.length > 0) {
|
|
95
95
|
const actual = this._createActual(
|
|
96
|
-
`contains ${extensionsDelta.myToAdd.length} new extension(s) (installed or enabled): ${
|
|
96
|
+
`contains ${extensionsDelta.myToAdd.length} new extension(s) (installed or enabled): ${extensionsDelta.myToAdd.map(extId => extId.value)}`
|
|
97
97
|
);
|
|
98
98
|
await actual.ready();
|
|
99
99
|
return;
|
|
@@ -157,7 +157,9 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
157
157
|
}
|
|
158
158
|
async start(extensionRegistryVersionId, allExtensions, myExtensions) {
|
|
159
159
|
if (myExtensions.length > 0) {
|
|
160
|
-
const actual = this._createActual(
|
|
160
|
+
const actual = this._createActual(
|
|
161
|
+
`contains ${myExtensions.length} extension(s): ${myExtensions.map(extId => extId.value)}.`
|
|
162
|
+
);
|
|
161
163
|
const result = actual.ready();
|
|
162
164
|
this._startCalled.open();
|
|
163
165
|
return result;
|
|
@@ -22,14 +22,14 @@ const CSS_CACHE_STORAGE_KEY = "workbench.contrib.css.cache";
|
|
|
22
22
|
const cssExtensionPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
23
23
|
extensionPoint: "css",
|
|
24
24
|
jsonSchema: {
|
|
25
|
-
description: ( localize(
|
|
25
|
+
description: ( localize(22213, "Contributes CSS files to be loaded in the workbench.")),
|
|
26
26
|
type: "array",
|
|
27
27
|
items: {
|
|
28
28
|
type: "object",
|
|
29
29
|
properties: {
|
|
30
30
|
path: {
|
|
31
31
|
description: ( localize(
|
|
32
|
-
|
|
32
|
+
22214,
|
|
33
33
|
"Path to the CSS file. The path is relative to the extension folder."
|
|
34
34
|
)),
|
|
35
35
|
type: "string"
|
|
@@ -121,7 +121,7 @@ let CSSExtensionPoint = class CSSExtensionPoint {
|
|
|
121
121
|
const extensionValue = extension.value;
|
|
122
122
|
const collector = extension.collector;
|
|
123
123
|
if (!extensionValue || !Array.isArray(extensionValue)) {
|
|
124
|
-
collector.error(( localize(
|
|
124
|
+
collector.error(( localize(22215, "'contributes.css' must be an array.")));
|
|
125
125
|
continue;
|
|
126
126
|
}
|
|
127
127
|
const extensionId = extension.description.identifier.value;
|
|
@@ -166,13 +166,13 @@ let CSSExtensionPoint = class CSSExtensionPoint {
|
|
|
166
166
|
const cssLocations = [];
|
|
167
167
|
for (const cssContribution of extensionValue) {
|
|
168
168
|
if (!cssContribution.path || typeof cssContribution.path !== "string") {
|
|
169
|
-
collector.error(( localize(
|
|
169
|
+
collector.error(( localize(22216, "'contributes.css.path' must be a string.")));
|
|
170
170
|
continue;
|
|
171
171
|
}
|
|
172
172
|
const cssLocation = joinPath(extensionLocation, cssContribution.path);
|
|
173
173
|
if (!isEqualOrParent(cssLocation, extensionLocation)) {
|
|
174
174
|
collector.warn(( localize(
|
|
175
|
-
|
|
175
|
+
22217,
|
|
176
176
|
"Expected 'contributes.css.path' ({0}) to be included inside extension's folder ({1}).",
|
|
177
177
|
cssLocation.path,
|
|
178
178
|
extensionLocation.path
|