@@ -28,7 +28,6 @@ use tui::{
28pub struct EditorView {
28pub struct EditorView {
29 keymap: Keymaps,
29 keymap: Keymaps,
30 on_next_key: Option<Box<dyn FnOnce(&mut commands::Context, KeyEvent)>>,
30 on_next_key: Option<Box<dyn FnOnce(&mut commands::Context, KeyEvent)>>,
31− status_msg: Option<String>,
32 last_insert: (commands::Command, Vec<KeyEvent>),
31 last_insert: (commands::Command, Vec<KeyEvent>),
33 completion: Option<Completion>,
32 completion: Option<Completion>,
@@ -40,7 +39,6 @@ impl EditorView {
41 keymap: keymap::default(),
40 keymap: keymap::default(),
42 on_next_key: None,
41 on_next_key: None,
44 last_insert: (commands::normal_mode, Vec::new()),
42 last_insert: (commands::normal_mode, Vec::new()),
45 completion: None,
43 completion: None,
@@ -86,17 +84,6 @@ impl EditorView {
88 self.render_statusline(doc, view, area, surface, theme, is_focused);
86 self.render_statusline(doc, view, area, surface, theme, is_focused);
91− if let Some(status_msg) = &self.status_msg {
92− let style = Style::default().fg(Color::Rgb(164, 160, 232)); // lavender
95− view.area.y + view.area.height,
102 pub fn render_buffer(
89 pub fn render_buffer(
@@ -537,6 +524,9 @@ impl Component for EditorView {
537 EventResult::Consumed(None)
524 EventResult::Consumed(None)
539 Event::Key(key) => {
526 Event::Key(key) => {
528+ cx.editor.status_msg = None;
540 let (view, doc) = cx.editor.current();
530 let (view, doc) = cx.editor.current();
541 let mode = doc.mode();
531 let mode = doc.mode();
@@ -547,12 +537,8 @@ impl Component for EditorView {
547 callback: None,
537 callback: None,
548 callbacks: cx.callbacks,
538 callbacks: cx.callbacks,
549 on_next_key_callback: None,
539 on_next_key_callback: None,
554− self.status_msg = None;
556 if let Some(on_next_key) = self.on_next_key.take() {
542 if let Some(on_next_key) = self.on_next_key.take() {
557 // if there's a command waiting input, do that first
543 // if there's a command waiting input, do that first
558 on_next_key(&mut cxt, key);
544 on_next_key(&mut cxt, key);
@@ -602,7 +588,6 @@ impl Component for EditorView {
604 self.on_next_key = cxt.on_next_key_callback.take();
590 self.on_next_key = cxt.on_next_key_callback.take();
605− self.status_msg = cxt.status_msg.take();
606 // appease borrowck
591 // appease borrowck
607 let callback = cxt.callback.take();
592 let callback = cxt.callback.take();
@@ -641,6 +626,23 @@ impl Component for EditorView {
641 self.render_view(doc, view, area, surface, &cx.editor.theme, is_focused);
626 self.render_view(doc, view, area, surface, &cx.editor.theme, is_focused);
629+ // render status msg
630+ if let Some((status_msg, severity)) = &cx.editor.status_msg {
631+ use helix_view::editor::Severity;
632+ let style = if *severity == Severity::Error {
633+ cx.editor.theme.get("error")
635+ Style::default().fg(Color::Rgb(164, 160, 232)) // lavender
640+ area.y + area.height.saturating_sub(1),
644 if let Some(completion) = &self.completion {
646 if let Some(completion) = &self.completion {
645 completion.render(area, surface, cx)
647 completion.render(area, surface, cx)
646 // render completion here
648 // render completion here