diff --git a/helix-term/src/editor.rs b/helix-term/src/editor.rs index bdcb9ae0..f6af5b4a 100644 --- a/helix-term/src/editor.rs +++ b/helix-term/src/editor.rs @@ -66,7 +66,7 @@ impl Editor { Ok(editor) } - pub fn set_commands(self) { + pub fn set_prompt(self) { let commands = |input: &str| match input { "q" => self.should_close = true, _ => (), @@ -265,7 +265,7 @@ impl Editor { // render buffer text let buffer_string; if view.state.mode == Mode::Command { - buffer_string = &self.prompt.buffer; + buffer_string = &self.prompt.unwrap().buffer; self.surface .set_string(1, self.size.1 - 1, String::from(":"), text_color); self.surface @@ -291,7 +291,7 @@ impl Editor { mode => write!(stdout, "\x1B[2 q"), }; if view.state.mode() == Mode::Command { - pos = Position::new(self.size.0 as usize, 2 + self.prompt.cursor_loc); + pos = Position::new(self.size.0 as usize, 2 + self.prompt.unwrap().cursor_loc); } else { if let Some(path) = view.state.path() { self.surface @@ -314,7 +314,7 @@ impl Editor { let mut reader = EventStream::new(); let keymap = keymap::default(); - self.set_commands(); + self.set_prompt(); self.render(); loop { @@ -357,7 +357,7 @@ impl Editor { view.ensure_cursor_in_view(); } Mode::Command => { - self.prompt.handle_input(event, view); + self.prompt.unwrap().handle_input(event, view); } mode => { if let Some(command) = keymap[&mode].get(&keys) { diff --git a/helix-view/src/prompt.rs b/helix-view/src/prompt.rs index 8cfb9fde..b352a386 100644 --- a/helix-view/src/prompt.rs +++ b/helix-view/src/prompt.rs @@ -7,13 +7,13 @@ pub struct Prompt { pub buffer: String, pub cursor_loc: usize, completion_fn: Box Option>>, - callback_fn: Box, + callback_fn: Box, } impl Prompt { pub fn new( completion_fn: impl FnMut(&str) -> Option> + 'static, - callback_fn: impl Fn(&str) + 'static, + callback_fn: impl FnMut(&str) + 'static, ) -> Prompt { Prompt { buffer: String::from(""),