A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/edi/input_handlers/keyboard.rs')
-rw-r--r--src/edi/input_handlers/keyboard.rs37
1 files changed, 18 insertions, 19 deletions
diff --git a/src/edi/input_handlers/keyboard.rs b/src/edi/input_handlers/keyboard.rs
index e84f5c2..97d3b3f 100644
--- a/src/edi/input_handlers/keyboard.rs
+++ b/src/edi/input_handlers/keyboard.rs
@@ -522,25 +522,7 @@ impl Editor {
self.text.scroll_to_cursor_centering();
inlay!(self);
}
- Do::Boolean(BoolRequest::ReloadFile, true) => {
- self.hist.push_if_changed(&mut self.text);
- self.text.rope = Rope::from_str(
- &std::fs::read_to_string(
- self.origin.as_ref().unwrap(),
- )
- .unwrap(),
- );
-
- self.text.cursor.first_mut().position = self
- .text
- .cursor
- .first()
- .position
- .min(self.text.rope.len_chars());
- self.mtime = Self::modify(self.origin.as_deref());
- self.bar.last_action = "reloaded".into();
- self.hist.push(&mut self.text)
- }
+ Do::Boolean(BoolRequest::ReloadFile, true) => self.reload(),
Do::Boolean(BoolRequest::ReloadFile, false) => {}
Do::InsertCursor(dir) => {
self.text
@@ -863,4 +845,21 @@ impl Editor {
.request(lsp.runtime.spawn(fut));
}
}
+ pub fn reload(&mut self) {
+ self.hist.push_if_changed(&mut self.text);
+ self.text.rope = Rope::from_str(
+ &std::fs::read_to_string(self.origin.as_ref().unwrap())
+ .unwrap(),
+ );
+
+ self.text.cursor.first_mut().position = self
+ .text
+ .cursor
+ .first()
+ .position
+ .min(self.text.rope.len_chars());
+ self.mtime = Self::modify(self.origin.as_deref());
+ self.bar.last_action = "reloaded".into();
+ self.hist.push(&mut self.text)
+ }
}