From e719f08cead9152b77cc33ecf9fd8b28e67952a7 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 2 Jul 2018 11:43:23 +0200 Subject: [PATCH] fix #53434 --- .../parts/quickopen/browser/helpHandler.ts | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts index 9a0d2482fc9..d862f057225 100644 --- a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts @@ -10,7 +10,7 @@ import * as types from 'vs/base/common/types'; import { Registry } from 'vs/platform/registry/common/platform'; import { Mode, IEntryRunContext, IAutoFocus } from 'vs/base/parts/quickopen/common/quickOpen'; import { QuickOpenModel, QuickOpenEntryGroup } from 'vs/base/parts/quickopen/browser/quickOpenModel'; -import { IQuickOpenRegistry, Extensions, QuickOpenHandler } from 'vs/workbench/browser/quickopen'; +import { IQuickOpenRegistry, Extensions, QuickOpenHandler, QuickOpenHandlerDescriptor, QuickOpenHandlerHelpEntry } from 'vs/workbench/browser/quickopen'; import { IQuickOpenService } from 'vs/platform/quickOpen/common/quickOpen'; export const HELP_PREFIX = '?'; @@ -79,9 +79,9 @@ export class HelpHandler extends QuickOpenHandler { const workbenchScoped: HelpEntry[] = []; const editorScoped: HelpEntry[] = []; - let entry: HelpEntry; - handlerDescriptors.sort((h1, h2) => h1.prefix.localeCompare(h2.prefix)).forEach((handlerDescriptor) => { + const matchingHandlers: (QuickOpenHandlerHelpEntry | QuickOpenHandlerDescriptor)[] = []; + handlerDescriptors.sort((h1, h2) => h1.prefix.localeCompare(h2.prefix)).forEach(handlerDescriptor => { if (handlerDescriptor.prefix !== HELP_PREFIX) { // Descriptor has multiple help entries @@ -90,19 +90,26 @@ export class HelpHandler extends QuickOpenHandler { const helpEntry = handlerDescriptor.helpEntries[j]; if (helpEntry.prefix.indexOf(searchValue) === 0) { - entry = new HelpEntry(helpEntry.prefix, helpEntry.description, this.quickOpenService, searchValue.length > 0); - if (helpEntry.needsEditor) { - editorScoped.push(entry); - } else { - workbenchScoped.push(entry); - } + matchingHandlers.push(helpEntry); } } } // Single Help entry for descriptor else if (handlerDescriptor.prefix.indexOf(searchValue) === 0) { - entry = new HelpEntry(handlerDescriptor.prefix, handlerDescriptor.description, this.quickOpenService, searchValue.length > 0); + matchingHandlers.push(handlerDescriptor); + } + } + }); + + matchingHandlers.forEach(handler => { + if (handler instanceof QuickOpenHandlerDescriptor) { + workbenchScoped.push(new HelpEntry(handler.prefix, handler.description, this.quickOpenService, matchingHandlers.length === 1)); + } else { + const entry = new HelpEntry(handler.prefix, handler.description, this.quickOpenService, matchingHandlers.length === 1); + if (handler.needsEditor) { + editorScoped.push(entry); + } else { workbenchScoped.push(entry); } } -- GitLab