This commit is contained in:
Rinto Kuroshima 2025-04-10 11:48:16 +08:00 committed by GitHub
commit b552ca59d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

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