diff --git a/src/nvim.rs b/src/nvim.rs index e81aa93..188b669 100644 --- a/src/nvim.rs +++ b/src/nvim.rs @@ -17,6 +17,8 @@ pub trait RedrawEvents { fn on_put(&mut self, text: &str); fn on_clear(&mut self); + + fn on_resize(&mut self, columns: u64, rows: u64); } macro_rules! try_str { @@ -103,6 +105,12 @@ fn call(ui: &SharedUi, method: &str, args: Vec) { Ok(()) }) } + "resize" => { + safe_call(ui, move |ui| { + ui.borrow_mut().on_resize(try_int!(args[0]), try_int!(args[1])); + Ok(()) + }); + } _ => println!("Event {}", method), }; } diff --git a/src/ui.rs b/src/ui.rs index 3e01d74..9d7ee7c 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -90,5 +90,9 @@ impl RedrawEvents for Ui { fn on_clear(&mut self) { self.model.clear(); } + + fn on_resize(&mut self, columns: u64, rows: u64) { + self.model = UiModel::new(rows, columns); + } }