@@ -237,7 +237,7 @@ impl Editor {
237 Mode::Insert => "INS",
237 Mode::Insert => "INS",
238 Mode::Normal => "NOR",
238 Mode::Normal => "NOR",
239 Mode::Goto => "GOTO",
239 Mode::Goto => "GOTO",
240− Mode::Command => "COM", // command mode i guess
240+ Mode::Prompt => "PRO", // prompt?
242 // statusline
242 // statusline
243 self.surface.set_style(
243 self.surface.set_style(
@@ -252,9 +252,14 @@ impl Editor {
252 use tui::backend::Backend;
252 use tui::backend::Backend;
253 let view = self.view.as_ref().unwrap();
253 let view = self.view.as_ref().unwrap();
254 // render buffer text
254 // render buffer text
255− let buffer_string = &self.prompt.buffer;
255+ let buffer_string;
256+ if view.state.mode == Mode::Prompt {
257+ buffer_string = &self.prompt.buffer;
256− self.surface
258+ self.surface
257− .set_string(2, self.size.1 - 1, buffer_string, text_color);
259+ .set_string(1, self.size.1 - 1, buffer_string, text_color);
261+ buffer_string = &String::from("");
259 // TODO: theres probably a better place for this
264 // TODO: theres probably a better place for this
260 self.terminal
265 self.terminal
@@ -272,8 +277,8 @@ impl Editor {
272 Mode::Insert => write!(stdout, "\x1B[6 q"),
277 Mode::Insert => write!(stdout, "\x1B[6 q"),
273 mode => write!(stdout, "\x1B[2 q"),
278 mode => write!(stdout, "\x1B[2 q"),
275− if view.state.mode() == Mode::Command {
280+ if view.state.mode() == Mode::Prompt {
276− pos = Position::new(self.size.0 as usize, 2 + self.prompt.buffer.len());
281+ pos = Position::new(self.size.0 as usize, 1 + self.prompt.buffer.len());
278 if let Some(path) = view.state.path() {
283 if let Some(path) = view.state.path() {
279 self.surface
284 self.surface
@@ -341,16 +346,8 @@ impl Editor {
342 view.ensure_cursor_in_view();
347 view.ensure_cursor_in_view();
344− Mode::Command => {
349+ Mode::Prompt => {
345− if let Some(command) = keymap[&Mode::Command].get(&keys) {
350+ self.prompt.handle_keyevent(event, view);
347− } else if let KeyEvent {
348− code: KeyCode::Char(c),
352− commands::insert_char_prompt(&mut self.prompt, c)
355 mode => {
352 mode => {
356 if let Some(command) = keymap[&mode].get(&keys) {
353 if let Some(command) = keymap[&mode].get(&keys) {