提交 e719f08c 编写于 作者: B Benjamin Pasero

fix #53434

上级 a95d76af
......@@ -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);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册