aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-05-07 05:36:06 +0000
committerBlaž Hrastnik2021-05-07 05:36:37 +0000
commitf2c79e245bdcc70be3c51fdca35917a929615152 (patch)
treefc14a7da3ffab6e1cbd9b35029289afe623552bd
parent418ee17b86c24f03699659f4aa91b331a68e5666 (diff)
Allow switching views back to scratch buffers.
-rw-r--r--helix-term/src/commands.rs15
-rw-r--r--helix-view/src/editor.rs6
2 files changed, 9 insertions, 12 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index eab9397c..5c1021e1 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -930,17 +930,14 @@ pub fn buffer_picker(cx: &mut Context) {
path.into()
}
}
- None => "[NEW]".into(),
+ None => "[scratch buffer]".into(),
}
},
- |editor: &mut Editor, (_, path): &(DocumentId, Option<PathBuf>), _action| match path {
- Some(path) => {
- use helix_view::editor::Action;
- editor
- .open(path.into(), Action::Replace)
- .expect("editor.open failed");
- }
- None => (),
+ |editor: &mut Editor, (id, _path): &(DocumentId, Option<PathBuf>), _action| {
+ use helix_view::editor::Action;
+ editor
+ .switch(*id, Action::Replace)
+ .expect("editor.open failed");
},
);
cx.push_layer(Box::new(picker));
diff --git a/helix-view/src/editor.rs b/helix-view/src/editor.rs
index 84d499e3..256e0e83 100644
--- a/helix-view/src/editor.rs
+++ b/helix-view/src/editor.rs
@@ -66,7 +66,7 @@ impl Editor {
}
}
- fn _open(&mut self, id: DocumentId, action: Action) -> Result<DocumentId, Error> {
+ pub fn switch(&mut self, id: DocumentId, action: Action) -> Result<DocumentId, Error> {
use crate::tree::Layout;
use helix_core::Selection;
match action {
@@ -115,7 +115,7 @@ impl Editor {
let doc = Document::new(Rope::from("\n"));
let id = self.documents.insert(doc);
self.documents[id].id = id;
- self._open(id, action)
+ self.switch(id, action)
}
pub fn open(&mut self, path: PathBuf, action: Action) -> Result<DocumentId, Error> {
@@ -159,7 +159,7 @@ impl Editor {
id
};
- self._open(id, action)
+ self.switch(id, action)
}
pub fn close(&mut self, id: ViewId) {