feat: `command palette` supports searching by shortcut

pull/8377/head
kurorinto 6 months ago
parent 72d6ee48fc
commit 08df140a55

@ -780,13 +780,29 @@ function CommandPaletteInner({
const _query = deburr(
commandSearch.toLocaleLowerCase().replace(/[<>_| -]/g, ""),
);
matchingCommands = fuzzy
const matchingCommandsHaystack = fuzzy
.filter(_query, matchingCommands, {
extract: (command) => command.haystack,
})
.sort((a, b) => b.score - a.score)
.map((item) => item.original);
const matchingCommandsShortcut = fuzzy
.filter(_query, matchingCommands, {
extract: (command) => command.shortcut || "",
})
.sort((a, b) => b.score - a.score)
.map((item) => item.original)
.filter(
(item) =>
!matchingCommandsHaystack.some((item2) => item.label === item2.label),
);
matchingCommands = matchingCommandsHaystack.concat(
matchingCommandsShortcut,
);
setCommandsByCategory(getNextCommandsByCategory(matchingCommands));
setCurrentCommand(matchingCommands[0] ?? null);
}, [commandSearch, allCommands, isCommandAvailable, lastUsed]);

Loading…
Cancel
Save