From 421fda7bd7e8e5d02e18221c6ca6f93776a80c6c Mon Sep 17 00:00:00 2001 From: Felix Zeller Date: Mon, 1 Apr 2024 09:05:44 -0400 Subject: [PATCH] modify completion algo --- src/completion/link_completer.rs | 2 +- src/completion/matcher.rs | 2 +- src/completion/mod.rs | 2 +- src/vault/mod.rs | 10 +++++++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/completion/link_completer.rs b/src/completion/link_completer.rs index 6d4d4b60..e54a099c 100644 --- a/src/completion/link_completer.rs +++ b/src/completion/link_completer.rs @@ -99,7 +99,7 @@ pub trait LinkCompleter<'a>: Completer<'a> { // TODO: This could be slow let refnames = completions - .iter() + .par_iter() .map(|completion| completion.refname()) .collect::>(); diff --git a/src/completion/matcher.rs b/src/completion/matcher.rs index ccd932ea..146cd49b 100644 --- a/src/completion/matcher.rs +++ b/src/completion/matcher.rs @@ -85,7 +85,7 @@ pub fn fuzzy_match<'a, T: Matchable>( let mut matcher = Matcher::new(nucleo_matcher::Config::DEFAULT); let matches = pattern::Pattern::parse( filter_text, - pattern::CaseMatching::Ignore, + pattern::CaseMatching::Smart, Normalization::Smart, ) .match_list(items, &mut matcher); diff --git a/src/completion/mod.rs b/src/completion/mod.rs index 471d3e3e..dfe861c0 100644 --- a/src/completion/mod.rs +++ b/src/completion/mod.rs @@ -317,7 +317,7 @@ fn run_completer<'a, T: Completer<'a>>( let completions = completions .into_iter() - .take(50) + .take(10) .flat_map(|completable| { completable .completions(&completer) diff --git a/src/vault/mod.rs b/src/vault/mod.rs index 24852847..31eb2164 100644 --- a/src/vault/mod.rs +++ b/src/vault/mod.rs @@ -227,11 +227,13 @@ impl Vault { let resolved_referenceables = self .md_files .values() + .par_bridge() + .into_par_iter() .flat_map(|file| file.get_referenceables()) - .collect_vec(); + .collect::>(); let resolved_referenceables_refnames: HashSet = resolved_referenceables - .iter() + .par_iter() .flat_map(|resolved| { resolved.get_refname(self.root_dir()).and_then(|refname| { vec![ @@ -255,6 +257,8 @@ impl Vault { references .iter() .unique_by(|(_, reference)| &reference.data().reference_text) + .par_bridge() + .into_par_iter() .filter(|(_, reference)| { !resolved_referenceables_refnames .contains(&reference.data().reference_text) @@ -284,7 +288,7 @@ impl Vault { | Reference::Footnote(..) | Reference::LinkRef(..) => None, }) - .collect_vec() + .collect::>() }); resolved_referenceables