Skip to content

Commit ca9be9f

Browse files
committed
command: workbench.extensions.search
1 parent d946716 commit ca9be9f

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { IWorkbenchActionRegistry, Extensions as WorkbenchActionExtensions } fro
1414
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWorkbenchContribution } from 'vs/workbench/common/contributions';
1515
import { IOutputChannelRegistry, Extensions as OutputExtensions } from 'vs/workbench/services/output/common/output';
1616
import { 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';
1818
import { ExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/browser/extensionsWorkbenchService';
1919
import {
2020
OpenExtensionsViewletAction, InstallExtensionsAction, ShowOutdatedExtensionsAction, ShowRecommendedExtensionsAction, ShowRecommendedKeymapExtensionsAction, ShowPopularExtensionsAction,
@@ -47,6 +47,7 @@ import { IViewContainersRegistry, ViewContainerLocation, Extensions as ViewConta
4747
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
4848
import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences';
4949
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
50+
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
5051

5152
// Singletons
5253
registerSingleton(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

295320
MenuRegistry.appendMenuItem(MenuId.MenubarPreferencesMenu, {

0 commit comments

Comments
 (0)