Browse Source

tweak: prioritize fuzzysort results that start with user input (#5571)

justfortheloveof 2 months ago
parent
commit
7abc2a947e

+ 7 - 0
packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx

@@ -364,6 +364,13 @@ export function Autocomplete(props: {
     const result = fuzzysort.go(currentFilter, mixed, {
     const result = fuzzysort.go(currentFilter, mixed, {
       keys: [(obj) => obj.display.trimEnd(), "description", (obj) => obj.aliases?.join(" ") ?? ""],
       keys: [(obj) => obj.display.trimEnd(), "description", (obj) => obj.aliases?.join(" ") ?? ""],
       limit: 10,
       limit: 10,
+      scoreFn: (objResults) => {
+        const displayResult = objResults[0]
+        if (displayResult && displayResult.target.startsWith(store.visible + currentFilter)) {
+          return objResults.score * 2
+        }
+        return objResults.score
+      },
     })
     })
     return result.map((arr) => arr.obj)
     return result.map((arr) => arr.obj)
   })
   })