@@ -671,11 +671,18 @@ impl Editor {
671 .any(|(_, v)| v.doc == doc.id && v.id != view.id);
671 .any(|(_, v)| v.doc == doc.id && v.id != view.id);
673 let (view, doc) = current!(self);
673 let (view, doc) = current!(self);
674+ let view_id = view.id;
674 if remove_empty_scratch {
676 if remove_empty_scratch {
675 // Copy `doc.id` into a variable before calling `self.documents.remove`, which requires a mutable
677 // Copy `doc.id` into a variable before calling `self.documents.remove`, which requires a mutable
676 // borrow, invalidating direct access to `doc.id`.
678 // borrow, invalidating direct access to `doc.id`.
677 let id = doc.id;
679 let id = doc.id;
678 self.documents.remove(&id);
680 self.documents.remove(&id);
682+ // Remove the scratch buffer from any jumplists
683+ for (view, _) in self.tree.views_mut() {
684+ view.jumps.remove(&id)
680 let jump = (view.doc, doc.selection(view.id).clone());
687 let jump = (view.doc, doc.selection(view.id).clone());
681 view.jumps.push(jump);
688 view.jumps.push(jump);
@@ -691,7 +698,6 @@ impl Editor {
694− let view_id = view.id;
695 self.replace_document_in_view(view_id, id);
701 self.replace_document_in_view(view_id, id);