@@ -890,7 +890,7 @@ impl Editor {
890890 view.doc = doc_id;
891891 view.offset = Position::default();
892892
893− let doc = self.documents.get_mut(&doc_id).unwrap();
893+ let doc = doc_mut!(self, &doc_id);
894894 doc.ensure_view_init(view.id);
895895
896896 // TODO: reuse align_view
@@ -961,7 +961,7 @@ impl Editor {
961961 }
962962 Action::Load => {
963963 let view_id = view!(self).id;
964− let doc = self.documents.get_mut(&id).unwrap();
964+ let doc = doc_mut!(self, &id);
965965 doc.ensure_view_init(view_id);
966966 return;
967967 }
@@ -982,7 +982,7 @@ impl Editor {
982982 },
983983 );
984984 // initialize selection for view
985− let doc = self.documents.get_mut(&id).unwrap();
985+ let doc = doc_mut!(self, &id);
986986 doc.ensure_view_init(view_id);
987987 }
988988 }
@@ -1036,9 +1036,9 @@ impl Editor {
10361036 }
10371037
10381038 pub fn close(&mut self, id: ViewId) {
1039− let view = self.tree.get(self.tree.focus);
1039+ let (_view, doc) = current!(self);
10401040 // remove selection
1041− self.documents.get_mut(&view.doc).unwrap().remove_view(id);
1041+ doc.remove_view(id);
10421042 self.tree.remove(id);
10431043 self._refresh();
10441044 }
@@ -1112,7 +1112,7 @@ impl Editor {
11121112 .unwrap_or_else(|| self.new_document(Document::default()));
11131113 let view = View::new(doc_id, self.config().gutters.clone());
11141114 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);
11161116 doc.ensure_view_init(view_id);
11171117 }
11181118