diff --git a/packages/excalidraw/components/CommandPalette/CommandPalette.tsx b/packages/excalidraw/components/CommandPalette/CommandPalette.tsx index 36c9a9a687..dcec6575d6 100644 --- a/packages/excalidraw/components/CommandPalette/CommandPalette.tsx +++ b/packages/excalidraw/components/CommandPalette/CommandPalette.tsx @@ -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]);