diff options
author | Pascal Kuthe | 2022-10-13 18:10:10 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-10-21 01:03:00 +0000 |
commit | 189aa0bfcfb6841ced946289e112cc9cdd4919a5 (patch) | |
tree | 21ea62e50048de9faad3877c4cc9d3627096352f /helix-term/src/ui | |
parent | dc3527f52df27ae20294ca14bac60994725519aa (diff) |
never sort menu items when no fuzzy matching is possible
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r-- | helix-term/src/ui/completion.rs | 2 | ||||
-rw-r--r-- | helix-term/src/ui/menu.rs | 15 |
2 files changed, 4 insertions, 13 deletions
diff --git a/helix-term/src/ui/completion.rs b/helix-term/src/ui/completion.rs index 2e555e4b..7348dcf4 100644 --- a/helix-term/src/ui/completion.rs +++ b/helix-term/src/ui/completion.rs @@ -97,7 +97,7 @@ impl Completion { start_offset: usize, trigger_offset: usize, ) -> Self { - let menu = Menu::new(items, true, (), move |editor: &mut Editor, item, event| { + let menu = Menu::new(items, (), move |editor: &mut Editor, item, event| { fn item_to_transaction( doc: &Document, item: &CompletionItem, diff --git a/helix-term/src/ui/menu.rs b/helix-term/src/ui/menu.rs index f7712e4d..4b1155e3 100644 --- a/helix-term/src/ui/menu.rs +++ b/helix-term/src/ui/menu.rs @@ -74,15 +74,15 @@ impl<T: Item> Menu<T> { // rendering) pub fn new( options: Vec<T>, - sort: bool, editor_data: <T as Item>::Data, callback_fn: impl Fn(&mut Editor, Option<&T>, MenuEvent) + 'static, ) -> Self { - let mut menu = Self { + let matches = (0..options.len()).map(|i| (i, 0)).collect(); + Self { options, editor_data, matcher: Box::new(Matcher::default()), - matches: Vec::new(), + matches, cursor: None, widths: Vec::new(), callback_fn: Box::new(callback_fn), @@ -90,16 +90,7 @@ impl<T: Item> Menu<T> { size: (0, 0), viewport: (0, 0), recalculate: true, - }; - - if sort { - // TODO: scoring on empty input should just use a fastpath - menu.score(""); - } else { - menu.matches = (0..menu.options.len()).map(|i| (i, 0)).collect(); } - - menu } pub fn score(&mut self, pattern: &str) { |