@codingame/monaco-vscode-extension-gallery-service-override 5.0.0 → 5.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.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionRecommendationNotificationService.js +5 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsViews.js +5 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js +25 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-extension-gallery-service-override",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@5.
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@5.1.0"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -372,7 +372,11 @@ let ExtensionRecommendationNotificationService = class ExtensionRecommendationNo
|
|
|
372
372
|
}
|
|
373
373
|
if (resourceExtensions.length) {
|
|
374
374
|
const extensions = await this.extensionsWorkbenchService.getResourceExtensions(resourceExtensions, true);
|
|
375
|
-
|
|
375
|
+
for (const extension of extensions) {
|
|
376
|
+
if (await this.extensionsWorkbenchService.canInstall(extension)) {
|
|
377
|
+
result.push(extension);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
376
380
|
}
|
|
377
381
|
}
|
|
378
382
|
return result;
|
|
@@ -764,7 +764,11 @@ let ExtensionsListView = class ExtensionsListView extends ViewPane {
|
|
|
764
764
|
}
|
|
765
765
|
if (resourceExtensions.length) {
|
|
766
766
|
const extensions = await this.extensionsWorkbenchService.getResourceExtensions(resourceExtensions, true);
|
|
767
|
-
|
|
767
|
+
for (const extension of extensions) {
|
|
768
|
+
if (await this.extensionsWorkbenchService.canInstall(extension)) {
|
|
769
|
+
result.push(extension);
|
|
770
|
+
}
|
|
771
|
+
}
|
|
768
772
|
}
|
|
769
773
|
}
|
|
770
774
|
return result;
|
|
@@ -1681,7 +1681,7 @@ let ExtensionsWorkbenchService = class ExtensionsWorkbenchService extends Dispos
|
|
|
1681
1681
|
}
|
|
1682
1682
|
return false;
|
|
1683
1683
|
}
|
|
1684
|
-
if (extension.resourceExtension) {
|
|
1684
|
+
if (extension.resourceExtension && (await this.extensionManagementService.canInstall(extension.resourceExtension))) {
|
|
1685
1685
|
return true;
|
|
1686
1686
|
}
|
|
1687
1687
|
return false;
|
package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagementService.js
CHANGED
|
@@ -35,6 +35,9 @@ import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/te
|
|
|
35
35
|
|
|
36
36
|
var WorkspaceExtensionsManagementService_1;
|
|
37
37
|
const _moduleId = "vs/workbench/services/extensionManagement/common/extensionManagementService";
|
|
38
|
+
function isResourceExtension(extension) {
|
|
39
|
+
return extension && !!extension.manifest;
|
|
40
|
+
}
|
|
38
41
|
let ExtensionManagementService = class ExtensionManagementService extends Disposable {
|
|
39
42
|
constructor(extensionManagementServerService, extensionGalleryService, userDataProfileService, configurationService, productService, downloadService, userDataSyncEnablementService, dialogService, workspaceTrustRequestService, extensionManifestPropertiesService, fileService, logService, instantiationService, extensionsScannerService, telemetryService) {
|
|
40
43
|
super();
|
|
@@ -291,7 +294,13 @@ let ExtensionManagementService = class ExtensionManagementService extends Dispos
|
|
|
291
294
|
}
|
|
292
295
|
return Promise.reject('No Servers');
|
|
293
296
|
}
|
|
294
|
-
async canInstall(
|
|
297
|
+
async canInstall(extension) {
|
|
298
|
+
if (isResourceExtension(extension)) {
|
|
299
|
+
return this.canInstallResourceExtension(extension);
|
|
300
|
+
}
|
|
301
|
+
return this.canInstallGalleryExtension(extension);
|
|
302
|
+
}
|
|
303
|
+
async canInstallGalleryExtension(gallery) {
|
|
295
304
|
if (this.extensionManagementServerService.localExtensionManagementServer
|
|
296
305
|
&& (await this.extensionManagementServerService.localExtensionManagementServer.extensionManagementService.canInstall(gallery))) {
|
|
297
306
|
return true;
|
|
@@ -312,6 +321,18 @@ let ExtensionManagementService = class ExtensionManagementService extends Dispos
|
|
|
312
321
|
}
|
|
313
322
|
return false;
|
|
314
323
|
}
|
|
324
|
+
canInstallResourceExtension(extension) {
|
|
325
|
+
if (this.extensionManagementServerService.localExtensionManagementServer) {
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
if (this.extensionManagementServerService.remoteExtensionManagementServer && this.extensionManifestPropertiesService.canExecuteOnWorkspace(extension.manifest)) {
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
if (this.extensionManagementServerService.webExtensionManagementServer && this.extensionManifestPropertiesService.canExecuteOnWeb(extension.manifest)) {
|
|
332
|
+
return true;
|
|
333
|
+
}
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
315
336
|
async updateFromGallery(gallery, extension, installOptions) {
|
|
316
337
|
const server = this.getServer(extension);
|
|
317
338
|
if (!server) {
|
|
@@ -395,6 +416,9 @@ let ExtensionManagementService = class ExtensionManagementService extends Dispos
|
|
|
395
416
|
return this.workspaceExtensionManagementService.getInstalled(includeInvalid);
|
|
396
417
|
}
|
|
397
418
|
async installResourceExtension(extension, installOptions) {
|
|
419
|
+
if (!this.canInstallResourceExtension(extension)) {
|
|
420
|
+
throw ( (new Error('This extension cannot be installed in the current workspace.')));
|
|
421
|
+
}
|
|
398
422
|
if (!installOptions.isWorkspaceScoped) {
|
|
399
423
|
return this.installFromLocation(extension.location);
|
|
400
424
|
}
|