From 06502e5a2e18eeb0e6c4828b6cda0d4ba81cdbab Mon Sep 17 00:00:00 2001 From: Jan Hrastnik Date: Mon, 19 Oct 2020 19:39:35 +0200 Subject: added prompt close --- helix-view/src/prompt.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'helix-view/src') diff --git a/helix-view/src/prompt.rs b/helix-view/src/prompt.rs index 729533c5..12f29942 100644 --- a/helix-view/src/prompt.rs +++ b/helix-view/src/prompt.rs @@ -6,20 +6,24 @@ pub struct Prompt { pub prompt: String, pub line: String, pub cursor: usize, - completion_fn: Box Option>>, + pub completion: Option>, + pub should_close: bool, + completion_fn: Box Option>>, callback_fn: Box, } impl Prompt { pub fn new( prompt: String, - completion_fn: impl FnMut(&str) -> Option> + 'static, + completion_fn: impl FnMut(&str) -> Option> + 'static, callback_fn: impl FnMut(&mut Editor, &str) + 'static, ) -> Prompt { Prompt { prompt, line: String::new(), cursor: 0, + completion: None, + should_close: false, completion_fn: Box::new(completion_fn), callback_fn: Box::new(callback_fn), } @@ -65,7 +69,7 @@ impl Prompt { } => self.insert_char(c), KeyEvent { code: KeyCode::Esc, .. - } => unimplemented!("Exit prompt!"), + } => self.should_close = true, KeyEvent { code: KeyCode::Right, .. @@ -93,9 +97,8 @@ impl Prompt { KeyEvent { code: KeyCode::Tab, .. } => { - let _completion = (self.completion_fn)(&self.line); + self.completion = (self.completion_fn)(&self.line); } - _ => (), } } -- cgit v1.2.3-70-g09d2