diff --git a/src/vs/workbench/contrib/quickopen/browser/viewPickerHandler.ts b/src/vs/workbench/contrib/quickopen/browser/viewPickerHandler.ts index c0f1cac747ce21687db67a3341550db5b7822aea..122843b36554375681a3f13b7f045a129a64cdbc 100644 --- a/src/vs/workbench/contrib/quickopen/browser/viewPickerHandler.ts +++ b/src/vs/workbench/contrib/quickopen/browser/viewPickerHandler.ts @@ -147,7 +147,11 @@ export class ViewPickerHandler extends QuickOpenHandler { // Viewlets const viewlets = this.viewletService.getViewlets(); - viewlets.forEach((viewlet, index) => viewEntries.push(new ViewEntry(viewlet.name, nls.localize('views', "Side Bar"), () => this.viewletService.openViewlet(viewlet.id, true)))); + viewlets.forEach((viewlet, index) => { + if (this.hasToShowViewlet(viewlet)) { + viewEntries.push(new ViewEntry(viewlet.name, nls.localize('views', "Side Bar"), () => this.viewletService.openViewlet(viewlet.id, true))); + } + }); // Panels const panels = this.panelService.getPanels(); @@ -189,6 +193,15 @@ export class ViewPickerHandler extends QuickOpenHandler { return viewEntries; } + private hasToShowViewlet(viewlet: ViewletDescriptor): boolean { + const viewContainer = Registry.as(ViewContainerExtensions.ViewContainersRegistry).get(viewlet.id); + if (viewContainer && viewContainer.hideIfEmpty) { + const viewsCollection = this.viewsService.getViewDescriptors(viewContainer); + return !!viewsCollection && viewsCollection.activeViewDescriptors.length > 0; + } + return true; + } + getAutoFocus(searchValue: string, context: { model: IModel, quickNavigateConfiguration?: IQuickNavigateConfiguration }): IAutoFocus { return { autoFocusFirstEntry: !!searchValue || !!context.quickNavigateConfiguration