From 9b958a8e10f2271dd485bacd867f4627eb1b66b1 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Wed, 7 May 2025 16:56:10 +1000 Subject: launcher: better fuzzy query --- modules/launcher/Actions.qml | 8 +++++--- services/Apps.qml | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/launcher/Actions.qml b/modules/launcher/Actions.qml index 4323bff..e604ae3 100644 --- a/modules/launcher/Actions.qml +++ b/modules/launcher/Actions.qml @@ -88,15 +88,17 @@ Singleton { } ] - readonly property list preppedNames: list.map(a => ({ + readonly property list preppedActions: list.map(a => ({ name: Fuzzy.prepare(a.name), + desc: Fuzzy.prepare(a.desc), action: a })) function fuzzyQuery(search: string): var { - return Fuzzy.go(search.slice(LauncherConfig.actionPrefix.length), preppedNames, { + return Fuzzy.go(search.slice(LauncherConfig.actionPrefix.length), preppedActions, { all: true, - key: "name" + keys: ["name", "desc"], + scoreFn: r => r[0].score * 0.9 + r[1].score * 0.1 }).map(r => r.obj.action); } diff --git a/services/Apps.qml b/services/Apps.qml index f964be2..6f2f48f 100644 --- a/services/Apps.qml +++ b/services/Apps.qml @@ -8,15 +8,17 @@ Singleton { id: root readonly property list list: DesktopEntries.applications.values.filter(a => !a.noDisplay).sort((a, b) => a.name.localeCompare(b.name)) - readonly property list preppedNames: list.map(a => ({ + readonly property list preppedApps: list.map(a => ({ name: Fuzzy.prepare(a.name), + comment: Fuzzy.prepare(a.comment), entry: a })) function fuzzyQuery(search: string): var { // Idk why list doesn't work - return Fuzzy.go(search, preppedNames, { + return Fuzzy.go(search, preppedApps, { all: true, - key: "name" + keys: ["name", "comment"], + scoreFn: r => r[0].score * 0.9 + r[1].score * 0.1 }).map(r => r.obj.entry); } -- cgit v1.2.3-freya