From 5191952155c6d4b25189e4dc8db02e62f18b9e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20C=C3=B4rte-Real?= Date: Thu, 2 Jan 2020 17:53:37 +0000 Subject: [PATCH] Simplify matching code in launcher --- src/widgets/launcher.rs | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/widgets/launcher.rs b/src/widgets/launcher.rs index 7f22aef..cfd5162 100644 --- a/src/widgets/launcher.rs +++ b/src/widgets/launcher.rs @@ -232,25 +232,16 @@ impl Widget for Launcher { for desktop in self.options.iter() { let d = desktop.clone(); - m.push(( - fuzzy_match(&desktop.name.to_lowercase(), &self.input.to_lowercase()), - d.clone(), - 100, - )); + if let Some(ma) = fuzzy_match(&desktop.name.to_lowercase(), &self.input.to_lowercase()) { + m.push((ma, d.clone(), 100)); + } for keyword in desktop.keywords.iter() { - m.push(( - fuzzy_match(&keyword.to_lowercase(), &self.input.to_lowercase()), - d.clone(), - 90, - )); + if let Some(ma) = fuzzy_match(&keyword.to_lowercase(), &self.input.to_lowercase()) { + m.push((ma, d.clone(), 90)); + } } } - let mut m = m.iter() - .filter(|(x, _, _)| x.is_some()) - .map(|(x, y, z)| (x.unwrap(), y.clone(), z.clone())) - .collect::>(); - m.sort_by(|(x1, y1, z1), (x2, y2, z2)| { if z1 > z2 { Ordering::Less