diff options
-rw-r--r-- | helix-view/src/document.rs | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index 3a3b9390..cf4a6faa 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -342,29 +342,35 @@ impl Document { pub fn undo(&mut self, view_id: ViewId) -> bool { let mut history = self.history.take(); - if let Some(transaction) = history.undo() { - let success = self._apply(&transaction, view_id); + let success = if let Some(transaction) = history.undo() { + self._apply(&transaction, view_id) + } else { + false + }; + self.history.set(history); + if success { // reset changeset to fix len self.changes = ChangeSet::new(self.text()); - - return success; } - self.history.set(history); - false + + success } pub fn redo(&mut self, view_id: ViewId) -> bool { let mut history = self.history.take(); - if let Some(transaction) = history.redo() { - let success = self._apply(&transaction, view_id); + let success = if let Some(transaction) = history.redo() { + self._apply(&transaction, view_id) + } else { + false + }; + self.history.set(history); + if success { // reset changeset to fix len self.changes = ChangeSet::new(self.text()); - - return success; } - self.history.set(history); + false } |