diff options
author | Michael Davis | 2022-11-27 18:47:26 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-11-29 16:15:20 +0000 |
commit | 9a9e462183cb60bff6450f17173e6b18eadbbfb2 (patch) | |
tree | 888a8211b6c13ba38e32d00a334eedb7d2a826f1 /helix-view/src | |
parent | 2709ce33324cf6d4612c61609f336cf5937b6cac (diff) |
Call View::apply within Document::append_changes_to_history
Diffstat (limited to 'helix-view/src')
-rw-r--r-- | helix-view/src/document.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index 17503553..ad47f838 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -641,7 +641,7 @@ impl Document { // of the encoding. let transaction = helix_core::diff::compare_ropes(self.text(), &rope); apply_transaction(&transaction, self, view); - self.append_changes_to_history(view.id); + self.append_changes_to_history(view); self.reset_modified(); self.detect_indent_and_line_ending(); @@ -928,7 +928,7 @@ impl Document { } /// Commit pending changes to history - pub fn append_changes_to_history(&mut self, view_id: ViewId) { + pub fn append_changes_to_history(&mut self, view: &mut View) { if self.changes.is_empty() { return; } @@ -938,7 +938,7 @@ impl Document { // Instead of doing this messy merge we could always commit, and based on transaction // annotations either add a new layer or compose into the previous one. let transaction = - Transaction::from(changes).with_selection(self.selection(view_id).clone()); + Transaction::from(changes).with_selection(self.selection(view.id).clone()); // HAXX: we need to reconstruct the state as it was before the changes.. let old_state = self.old_state.take().expect("no old_state available"); @@ -946,6 +946,9 @@ impl Document { let mut history = self.history.take(); history.commit_revision(&transaction, &old_state); self.history.set(history); + + // Update jumplist entries in the view. + view.apply(&transaction, self); } pub fn id(&self) -> DocumentId { |