summaryrefslogtreecommitdiff
path: root/helix-term/src/ui
diff options
context:
space:
mode:
authorPascal Kuthe2022-10-13 18:10:10 +0000
committerBlaž Hrastnik2022-10-21 01:03:00 +0000
commit189aa0bfcfb6841ced946289e112cc9cdd4919a5 (patch)
tree21ea62e50048de9faad3877c4cc9d3627096352f /helix-term/src/ui
parentdc3527f52df27ae20294ca14bac60994725519aa (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.rs2
-rw-r--r--helix-term/src/ui/menu.rs15
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) {