From 49b4cdb5669b1c572b2b26af4353cb16cb1260f7 Mon Sep 17 00:00:00 2001 From: Blaž Hrastnik Date: Fri, 16 Oct 2020 14:37:12 +0900 Subject: Refactor command calling. --- helix-view/src/editor.rs | 6 +++++- helix-view/src/prompt.rs | 12 ++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'helix-view') diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index 444e4bf7..c292caed 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -6,11 +6,15 @@ use anyhow::Error; pub struct Editor { pub view: Option, + pub should_close: bool, } impl Editor { pub fn new() -> Self { - Self { view: None } + Self { + view: None, + should_close: false, + } } pub fn open(&mut self, path: PathBuf, size: (u16, u16)) -> Result<(), Error> { diff --git a/helix-view/src/prompt.rs b/helix-view/src/prompt.rs index b352a386..f0ae44c9 100644 --- a/helix-view/src/prompt.rs +++ b/helix-view/src/prompt.rs @@ -1,5 +1,5 @@ use crate::commands; -use crate::View; +use crate::{Editor, View}; use crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; use std::string::String; @@ -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 FnMut(&str) + 'static, + callback_fn: impl FnMut(&mut Editor, &str) + 'static, ) -> Prompt { Prompt { buffer: String::from(""), @@ -55,7 +55,7 @@ impl Prompt { } } - pub fn handle_input(&mut self, key_event: KeyEvent, view: &mut View) { + pub fn handle_input(&mut self, key_event: KeyEvent, editor: &mut Editor) { match key_event { KeyEvent { code: KeyCode::Char(c), @@ -63,7 +63,7 @@ impl Prompt { } => self.insert_char(c), KeyEvent { code: KeyCode::Esc, .. - } => commands::normal_mode(view, 1), + } => unimplemented!("Exit prompt!"), KeyEvent { code: KeyCode::Right, .. @@ -87,7 +87,7 @@ impl Prompt { KeyEvent { code: KeyCode::Enter, .. - } => (self.callback_fn)(&self.buffer), + } => (self.callback_fn)(editor, &self.buffer), _ => (), } } -- cgit v1.2.3-70-g09d2