From 871075e62b5703cfc584e4e02b14c2473f5b0b63 Mon Sep 17 00:00:00 2001 From: Vivek Kethineni <35619837+uek-1@users.noreply.github.com> Date: Sun, 6 Oct 2024 20:35:23 -0500 Subject: [PATCH] made partial completions only occur when adding more than the input string (#834) --- src/engine.rs | 16 ++++++++-------- src/menu/menu_functions.rs | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/engine.rs b/src/engine.rs index c5ae7d21..c3427673 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -967,17 +967,17 @@ impl Reedline { } ReedlineEvent::MenuNext => { if let Some(menu) = self.menus.iter_mut().find(|menu| menu.is_active()) { - if self.partial_completions { - menu.can_partially_complete( - self.quick_completions, - &mut self.editor, - self.completer.as_mut(), - self.history.as_ref(), - ); - }; if menu.get_values().len() == 1 && menu.can_quick_complete() { self.handle_editor_event(prompt, ReedlineEvent::Enter) } else { + if self.partial_completions { + menu.can_partially_complete( + self.quick_completions, + &mut self.editor, + self.completer.as_mut(), + self.history.as_ref(), + ); + } menu.menu_event(MenuEvent::NextElement); Ok(EventStatus::Handled) } diff --git a/src/menu/menu_functions.rs b/src/menu/menu_functions.rs index bf9ded7b..84575f0c 100644 --- a/src/menu/menu_functions.rs +++ b/src/menu/menu_functions.rs @@ -327,7 +327,8 @@ pub fn can_partially_complete(values: &[Suggestion], editor: &mut Editor) -> boo let matching = &value[0..index]; // make sure that the partial completion does not overwrite user entered input - let extends_input = matching.starts_with(&editor.get_buffer()[span.start..span.end]); + let extends_input = matching.starts_with(&editor.get_buffer()[span.start..span.end]) + && matching != &editor.get_buffer()[span.start..span.end]; if !matching.is_empty() && extends_input { let mut line_buffer = editor.line_buffer().clone();