diff options
author | Blaž Hrastnik | 2022-05-29 16:21:41 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-05-29 16:22:17 +0000 |
commit | 5ed622399026754b3712db7ac8c2d6fc372d0238 (patch) | |
tree | d5a8bad7178ed7970188b5ab1eef916dc4707a9f /helix-view | |
parent | 710c4a84b22bc149e2f9fadfc37aaabbfe3b1c42 (diff) |
fix: Remove empty scratch buffer from jumplists when removing it
Fixes #1238
Diffstat (limited to 'helix-view')
-rw-r--r-- | helix-view/src/editor.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs index 3ba6fea8..c53fcc7f 100644 --- a/helix-view/src/editor.rs +++ b/helix-view/src/editor.rs @@ -671,11 +671,18 @@ impl Editor { .any(|(_, v)| v.doc == doc.id && v.id != view.id); let (view, doc) = current!(self); + let view_id = view.id; + if remove_empty_scratch { // Copy `doc.id` into a variable before calling `self.documents.remove`, which requires a mutable // borrow, invalidating direct access to `doc.id`. let id = doc.id; self.documents.remove(&id); + + // Remove the scratch buffer from any jumplists + for (view, _) in self.tree.views_mut() { + view.jumps.remove(&id) + } } else { let jump = (view.doc, doc.selection(view.id).clone()); view.jumps.push(jump); @@ -691,7 +698,6 @@ impl Editor { } } - let view_id = view.id; self.replace_document_in_view(view_id, id); return; |