diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-20 23:44:15 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-07-20 23:44:15 +0200 |
| commit | 4930f050c56660c245e5976979babb66aea7bfd5 (patch) | |
| tree | 1a0cc823da65c4258f4434be98e92f814ae4fce2 /crates/daemon/src/aclient/ordering.rs | |
| parent | chore: Commit (diff) | |
| download | atuin-4930f050c56660c245e5976979babb66aea7bfd5.zip | |
chore: Last big refactoring
Diffstat (limited to 'crates/daemon/src/aclient/ordering.rs')
| -rw-r--r-- | crates/daemon/src/aclient/ordering.rs | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/crates/daemon/src/aclient/ordering.rs b/crates/daemon/src/aclient/ordering.rs deleted file mode 100644 index 8fa6498e..00000000 --- a/crates/daemon/src/aclient/ordering.rs +++ /dev/null @@ -1,32 +0,0 @@ -use minspan::minspan; -use turtle::history::History; - -use super::settings::SearchMode; - -pub(crate) fn reorder_fuzzy(mode: SearchMode, query: &str, res: Vec<History>) -> Vec<History> { - match mode { - SearchMode::Fuzzy => reorder(query, |x| &x.command, res), - _ => res, - } -} - -#[expect(clippy::needless_pass_by_value, reason = "makes things easier")] -fn reorder<F, A>(query: &str, f: F, res: Vec<A>) -> Vec<A> -where - F: Fn(&A) -> &String, - A: Clone, -{ - let mut r = res.clone(); - let qvec = &query.chars().collect(); - r.sort_by_cached_key(|h| { - // TODO for fzf search we should sum up scores for each matched term - // - // The fallback is a little unfortunate: when we are asked to match a query that is found nowhere, - // we don't want to return a None, as the comparison behaviour would put the worst matches - // at the front. Therefore, we'll return a set of indices that are one larger than the longest - // possible legitimate match. This is meaningless except as a comparison. - let (from, to) = minspan::span(qvec, &(f(h).chars().collect())).unwrap_or((0, res.len())); - 1 + to - from - }); - r -} |
