@@ -9,9 +9,9 @@ import { KeyMod, KeyChord, KeyCode } from 'vs/base/common/keyCodes';
99import { Registry } from 'vs/platform/registry/common/platform' ;
1010import { SyncActionDescriptor , MenuRegistry , MenuId } from 'vs/platform/actions/common/actions' ;
1111import { registerSingleton } from 'vs/platform/instantiation/common/extensions' ;
12- import { ExtensionsLabel , ExtensionsChannelId , PreferencesLabel , IExtensionManagementService , IExtensionGalleryService } from 'vs/platform/extensionManagement/common/extensionManagement' ;
12+ import { ExtensionsLabel , ExtensionsChannelId , PreferencesLabel , IExtensionManagementService , IExtensionGalleryService , IExtensionManagementServerService } from 'vs/platform/extensionManagement/common/extensionManagement' ;
1313import { IWorkbenchActionRegistry , Extensions as WorkbenchActionExtensions } from 'vs/workbench/common/actions' ;
14- import { IWorkbenchContributionsRegistry , Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions' ;
14+ import { IWorkbenchContributionsRegistry , Extensions as WorkbenchExtensions , IWorkbenchContribution } from 'vs/workbench/common/contributions' ;
1515import { IOutputChannelRegistry , Extensions as OutputExtensions } from 'vs/workbench/contrib/output/common/output' ;
1616import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors' ;
1717import { VIEWLET_ID , IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions' ;
@@ -42,19 +42,11 @@ import { onUnexpectedError } from 'vs/base/common/errors';
4242import { ExtensionDependencyChecker } from 'vs/workbench/contrib/extensions/browser/extensionsDependencyChecker' ;
4343import { CancellationToken } from 'vs/base/common/cancellation' ;
4444import { ExtensionType } from 'vs/platform/extensions/common/extensions' ;
45+ import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService' ;
4546
4647// Singletons
4748registerSingleton ( IExtensionsWorkbenchService , ExtensionsWorkbenchService ) ;
4849
49- const workbenchRegistry = Registry . as < IWorkbenchContributionsRegistry > ( WorkbenchExtensions . Workbench ) ;
50- workbenchRegistry . registerWorkbenchContribution ( StatusUpdater , LifecyclePhase . Restored ) ;
51- workbenchRegistry . registerWorkbenchContribution ( MaliciousExtensionChecker , LifecyclePhase . Eventually ) ;
52- workbenchRegistry . registerWorkbenchContribution ( ConfigureRecommendedExtensionsCommandsContributor , LifecyclePhase . Eventually ) ;
53- workbenchRegistry . registerWorkbenchContribution ( KeymapExtensions , LifecyclePhase . Restored ) ;
54- workbenchRegistry . registerWorkbenchContribution ( ExtensionsViewletViewsContribution , LifecyclePhase . Starting ) ;
55- workbenchRegistry . registerWorkbenchContribution ( ExtensionActivationProgress , LifecyclePhase . Eventually ) ;
56- workbenchRegistry . registerWorkbenchContribution ( ExtensionDependencyChecker , LifecyclePhase . Eventually ) ;
57-
5850Registry . as < IOutputChannelRegistry > ( OutputExtensions . OutputChannels )
5951 . registerChannel ( { id : ExtensionsChannelId , label : ExtensionsLabel , log : false } ) ;
6052
@@ -70,17 +62,6 @@ Registry.as<IQuickOpenRegistry>(Extensions.Quickopen).registerQuickOpenHandler(
7062 )
7163) ;
7264
73- Registry . as < IQuickOpenRegistry > ( Extensions . Quickopen ) . registerQuickOpenHandler (
74- new QuickOpenHandlerDescriptor (
75- GalleryExtensionsHandler ,
76- GalleryExtensionsHandler . ID ,
77- 'ext install ' ,
78- undefined ,
79- localize ( 'galleryExtensionsCommands' , "Install Gallery Extensions" ) ,
80- true
81- )
82- ) ;
83-
8465// Editor
8566const editorDescriptor = new EditorDescriptor (
8667 ExtensionEditor ,
@@ -145,9 +126,6 @@ actionRegistry.registerWorkbenchAction(builtinActionDescriptor, 'Extensions: Sho
145126const updateAllActionDescriptor = new SyncActionDescriptor ( UpdateAllAction , UpdateAllAction . ID , UpdateAllAction . LABEL ) ;
146127actionRegistry . registerWorkbenchAction ( updateAllActionDescriptor , 'Extensions: Update All Extensions' , ExtensionsLabel ) ;
147128
148- const openExtensionsFolderActionDescriptor = new SyncActionDescriptor ( OpenExtensionsFolderAction , OpenExtensionsFolderAction . ID , OpenExtensionsFolderAction . LABEL ) ;
149- actionRegistry . registerWorkbenchAction ( openExtensionsFolderActionDescriptor , 'Extensions: Open Extensions Folder' , ExtensionsLabel ) ;
150-
151129const installVSIXActionDescriptor = new SyncActionDescriptor ( InstallVSIXAction , InstallVSIXAction . ID , InstallVSIXAction . LABEL ) ;
152130actionRegistry . registerWorkbenchAction ( installVSIXActionDescriptor , 'Extensions: Install from VSIX...' , ExtensionsLabel ) ;
153131
@@ -349,4 +327,46 @@ MenuRegistry.appendMenuItem(MenuId.GlobalActivity, {
349327 title : localize ( 'showExtensions' , "Extensions" )
350328 } ,
351329 order : 3
352- } ) ;
330+ } ) ;
331+
332+ const workbenchRegistry = Registry . as < IWorkbenchContributionsRegistry > ( WorkbenchExtensions . Workbench ) ;
333+
334+ class ExtensionsContributions implements IWorkbenchContribution {
335+
336+ constructor (
337+ @IWorkbenchEnvironmentService workbenchEnvironmentService : IWorkbenchEnvironmentService ,
338+ @IExtensionManagementServerService extensionManagementServerService : IExtensionManagementServerService
339+ ) {
340+
341+ const canManageExtensions = extensionManagementServerService . localExtensionManagementServer || extensionManagementServerService . remoteExtensionManagementServer ;
342+
343+ if ( canManageExtensions ) {
344+ Registry . as < IQuickOpenRegistry > ( Extensions . Quickopen ) . registerQuickOpenHandler (
345+ new QuickOpenHandlerDescriptor (
346+ GalleryExtensionsHandler ,
347+ GalleryExtensionsHandler . ID ,
348+ 'ext install ' ,
349+ undefined ,
350+ localize ( 'galleryExtensionsCommands' , "Install Gallery Extensions" ) ,
351+ true
352+ )
353+ ) ;
354+ }
355+
356+ if ( workbenchEnvironmentService . extensionsPath ) {
357+ const openExtensionsFolderActionDescriptor = new SyncActionDescriptor ( OpenExtensionsFolderAction , OpenExtensionsFolderAction . ID , OpenExtensionsFolderAction . LABEL ) ;
358+ actionRegistry . registerWorkbenchAction ( openExtensionsFolderActionDescriptor , 'Extensions: Open Extensions Folder' , ExtensionsLabel ) ;
359+ }
360+
361+ }
362+
363+ }
364+
365+ workbenchRegistry . registerWorkbenchContribution ( ExtensionsContributions , LifecyclePhase . Starting ) ;
366+ workbenchRegistry . registerWorkbenchContribution ( StatusUpdater , LifecyclePhase . Restored ) ;
367+ workbenchRegistry . registerWorkbenchContribution ( MaliciousExtensionChecker , LifecyclePhase . Eventually ) ;
368+ workbenchRegistry . registerWorkbenchContribution ( ConfigureRecommendedExtensionsCommandsContributor , LifecyclePhase . Eventually ) ;
369+ workbenchRegistry . registerWorkbenchContribution ( KeymapExtensions , LifecyclePhase . Restored ) ;
370+ workbenchRegistry . registerWorkbenchContribution ( ExtensionsViewletViewsContribution , LifecyclePhase . Starting ) ;
371+ workbenchRegistry . registerWorkbenchContribution ( ExtensionActivationProgress , LifecyclePhase . Eventually ) ;
372+ workbenchRegistry . registerWorkbenchContribution ( ExtensionDependencyChecker , LifecyclePhase . Eventually ) ;
0 commit comments