@@ -14,7 +14,7 @@ import { IWorkbenchActionRegistry, Extensions as WorkbenchActionExtensions } fro
1414import { IWorkbenchContributionsRegistry , Extensions as WorkbenchExtensions , IWorkbenchContribution } from 'vs/workbench/common/contributions' ;
1515import { IOutputChannelRegistry , Extensions as OutputExtensions } from 'vs/workbench/services/output/common/output' ;
1616import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors' ;
17- import { VIEWLET_ID , IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions' ;
17+ import { VIEWLET_ID , IExtensionsWorkbenchService , IExtensionsViewPaneContainer } from 'vs/workbench/contrib/extensions/common/extensions' ;
1818import { ExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/browser/extensionsWorkbenchService' ;
1919import {
2020 OpenExtensionsViewletAction , InstallExtensionsAction , ShowOutdatedExtensionsAction , ShowRecommendedExtensionsAction , ShowRecommendedKeymapExtensionsAction , ShowPopularExtensionsAction ,
@@ -47,6 +47,7 @@ import { IViewContainersRegistry, ViewContainerLocation, Extensions as ViewConta
4747import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService' ;
4848import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences' ;
4949import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey' ;
50+ import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet' ;
5051
5152// Singletons
5253registerSingleton ( IExtensionsWorkbenchService , ExtensionsWorkbenchService ) ;
@@ -290,6 +291,30 @@ CommandsRegistry.registerCommand({
290291 }
291292} ) ;
292293
294+ CommandsRegistry . registerCommand ( {
295+ id : 'workbench.extensions.search' ,
296+ description : {
297+ description : localize ( 'workbench.extensions.search.description' , "Search for a specific extension" ) ,
298+ args : [
299+ {
300+ name : localize ( 'workbench.extensions.search.arg.name' , "Query to use in search" ) ,
301+ schema : { 'type' : 'string' }
302+ }
303+ ]
304+ } ,
305+ handler : async ( accessor , query : string = '' ) => {
306+ const viewletService = accessor . get ( IViewletService ) ;
307+ const viewlet = await viewletService . openViewlet ( VIEWLET_ID , true ) ;
308+
309+ if ( ! viewlet ) {
310+ return ;
311+ }
312+
313+ ( viewlet . getViewPaneContainer ( ) as IExtensionsViewPaneContainer ) . search ( query ) ;
314+ viewlet . focus ( ) ;
315+ }
316+ } ) ;
317+
293318// File menu registration
294319
295320MenuRegistry . appendMenuItem ( MenuId . MenubarPreferencesMenu , {
0 commit comments