@@ -890,7 +890,7 @@ impl Editor {
890 view.doc = doc_id;
890 view.doc = doc_id;
891 view.offset = Position::default();
891 view.offset = Position::default();
893− let doc = self.documents.get_mut(&doc_id).unwrap();
893+ let doc = doc_mut!(self, &doc_id);
894 doc.ensure_view_init(view.id);
894 doc.ensure_view_init(view.id);
896 // TODO: reuse align_view
896 // TODO: reuse align_view
@@ -961,7 +961,7 @@ impl Editor {
962 Action::Load => {
962 Action::Load => {
963 let view_id = view!(self).id;
963 let view_id = view!(self).id;
964− let doc = self.documents.get_mut(&id).unwrap();
964+ let doc = doc_mut!(self, &id);
965 doc.ensure_view_init(view_id);
965 doc.ensure_view_init(view_id);
@@ -982,7 +982,7 @@ impl Editor {
984 // initialize selection for view
984 // initialize selection for view
985− let doc = self.documents.get_mut(&id).unwrap();
985+ let doc = doc_mut!(self, &id);
986 doc.ensure_view_init(view_id);
986 doc.ensure_view_init(view_id);
@@ -1036,9 +1036,9 @@ impl Editor {
1038 pub fn close(&mut self, id: ViewId) {
1038 pub fn close(&mut self, id: ViewId) {
1039− let view = self.tree.get(self.tree.focus);
1039+ let (_view, doc) = current!(self);
1040 // remove selection
1040 // remove selection
1041− self.documents.get_mut(&view.doc).unwrap().remove_view(id);
1041+ doc.remove_view(id);
1042 self.tree.remove(id);
1042 self.tree.remove(id);
1043 self._refresh();
1043 self._refresh();
@@ -1112,7 +1112,7 @@ impl Editor {
1112 .unwrap_or_else(|| self.new_document(Document::default()));
1112 .unwrap_or_else(|| self.new_document(Document::default()));
1113 let view = View::new(doc_id, self.config().gutters.clone());
1113 let view = View::new(doc_id, self.config().gutters.clone());
1114 let view_id = self.tree.insert(view);
1114 let view_id = self.tree.insert(view);
1115− let doc = self.documents.get_mut(&doc_id).unwrap();
1115+ let doc = doc_mut!(self, &doc_id);
1116 doc.ensure_view_init(view_id);
1116 doc.ensure_view_init(view_id);