diff options
| author | lilydjwg <lilydjwg@gmail.com> | 2026-01-25 13:46:39 +0800 |
|---|---|---|
| committer | lilydjwg <lilydjwg@gmail.com> | 2026-01-25 13:46:39 +0800 |
| commit | 904422efb087b3cdec4a49c8e2f7b600e87ad967 (patch) | |
| tree | 9f34105311020cf49311b7733142d4d43671944d /crates | |
| parent | feat(ui): highlight fulltext search as fulltext search instead of fuzzy search (diff) | |
| download | atuin-904422efb087b3cdec4a49c8e2f7b600e87ad967.zip | |
fix for 'term
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/atuin-client/src/database.rs | 6 | ||||
| -rw-r--r-- | crates/atuin/src/command/client/search/engines/db.rs | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/crates/atuin-client/src/database.rs b/crates/atuin-client/src/database.rs index b194e655..d51c2637 100644 --- a/crates/atuin-client/src/database.rs +++ b/crates/atuin-client/src/database.rs @@ -509,6 +509,9 @@ impl Database for Sqlite { QueryToken::MatchEnd(term) => { format!("{glob}{term}") } + QueryToken::MatchFull(term) => { + format!("{glob}{term}{glob}") + } QueryToken::Negation(term) => { is_inverse = true; format!("{glob}{term}{glob}") @@ -1189,6 +1192,7 @@ pub enum QueryToken<'a> { Negation(&'a str), MatchStart(&'a str), MatchEnd(&'a str), + MatchFull(&'a str), Or, Regex(&'a str), } @@ -1243,6 +1247,8 @@ impl<'a> Iterator for QueryTokenizer<'a> { QueryToken::MatchEnd(s) } else if let Some(s) = part.strip_prefix('!') { QueryToken::Negation(s) + } else if let Some(s) = part.strip_prefix('\'') { + QueryToken::MatchFull(s) } else if part == "|" { QueryToken::Or } else { diff --git a/crates/atuin/src/command/client/search/engines/db.rs b/crates/atuin/src/command/client/search/engines/db.rs index 9e7964f3..a1d22e9f 100644 --- a/crates/atuin/src/command/client/search/engines/db.rs +++ b/crates/atuin/src/command/client/search/engines/db.rs @@ -85,7 +85,7 @@ fn get_highlight_indices_fulltext(command: &str, search_input: &str) -> Vec<usiz ranges.push((l - term.len())..l); } } - QueryToken::Match(term) => { + QueryToken::Match(term) | QueryToken::MatchFull(term) => { for (idx, m) in matchee.match_indices(term) { ranges.push(idx..(idx + m.len())); } |
