.. [no ci]

This commit is contained in:
sxyazi 2023-10-04 14:34:42 +08:00
parent 1e0a73c4a6
commit 5df3504cf4
No known key found for this signature in database
2 changed files with 6 additions and 6 deletions

View file

@ -156,9 +156,9 @@ impl Executor {
let prev = exec.named.contains_key("previous"); let prev = exec.named.contains_key("previous");
let case = match (exec.named.contains_key("smart"), exec.named.contains_key("insensitive")) let case = match (exec.named.contains_key("smart"), exec.named.contains_key("insensitive"))
{ {
(false, false) => FinderCase::Sensitive, (true, _) => FinderCase::Smart,
(false, true) => FinderCase::Insensitive, (_, false) => FinderCase::Sensitive,
(true, _) => FinderCase::Smart, // prioritize smart over insensitive (_, true) => FinderCase::Insensitive,
}; };
cx.manager.active_mut().find(query, prev, case) cx.manager.active_mut().find(query, prev, case)
} }

View file

@ -8,9 +8,9 @@ use crate::files::Files;
#[derive(PartialEq, Eq)] #[derive(PartialEq, Eq)]
pub enum FinderCase { pub enum FinderCase {
Smart,
Sensitive, Sensitive,
Insensitive, Insensitive,
Smart,
} }
pub struct Finder { pub struct Finder {
@ -22,12 +22,12 @@ pub struct Finder {
impl Finder { impl Finder {
pub(super) fn new(s: &str, case: FinderCase) -> Result<Self> { pub(super) fn new(s: &str, case: FinderCase) -> Result<Self> {
let query = match case { let query = match case {
FinderCase::Sensitive => Regex::new(s)?,
FinderCase::Insensitive => RegexBuilder::new(s).case_insensitive(true).build()?,
FinderCase::Smart => { FinderCase::Smart => {
let uppercase = s.chars().any(|c| c.is_uppercase()); let uppercase = s.chars().any(|c| c.is_uppercase());
RegexBuilder::new(s).case_insensitive(!uppercase).build()? RegexBuilder::new(s).case_insensitive(!uppercase).build()?
} }
FinderCase::Sensitive => Regex::new(s)?,
FinderCase::Insensitive => RegexBuilder::new(s).case_insensitive(true).build()?,
}; };
Ok(Self { query, matched: Default::default(), version: 0 }) Ok(Self { query, matched: Default::default(), version: 0 })
} }