aboutsummaryrefslogtreecommitdiff
path: root/helix-term
diff options
context:
space:
mode:
authorMatouš Dzivjak2022-04-27 16:14:46 +0000
committerGitHub2022-04-27 16:14:46 +0000
commit52f5a4228aef2d31cf20aeee2bed317ba1767c18 (patch)
treeec3fa81c5749ad512bfa64f2ae1f3770e6fe03d9 /helix-term
parenta3c0b4db48bb286a9b59a3fb1089607f6f29388c (diff)
feat(commands): better handling of buffer-close (#1397)
* feat(commands): better handling of buffer-close Previously, when closing buffer, you would loose cursor position in other docs. Also, all splits where the buffer was open would be closed. This PR changes the behavior, if the view has also other buffer previously viewed it switches back to the last one instead of the view being closed. As a side effect, since the views are persisted, the cursor history is persisted as well. Fixes: https://github.com/helix-editor/helix/issues/1186 * Adjust buffer close behavior * Remove closed documents from jump history * Fix after rebase
Diffstat (limited to 'helix-term')
-rw-r--r--helix-term/src/commands.rs8
1 files changed, 2 insertions, 6 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index fb0940fd..8a0313ef 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -2489,8 +2489,8 @@ fn goto_last_line(cx: &mut Context) {
}
fn goto_last_accessed_file(cx: &mut Context) {
- let alternate_file = view!(cx.editor).last_accessed_doc;
- if let Some(alt) = alternate_file {
+ let view = view_mut!(cx.editor);
+ if let Some(alt) = view.docs_access_history.pop() {
cx.editor.switch(alt, Action::Replace);
} else {
cx.editor.set_error("no last accessed buffer")
@@ -3796,10 +3796,6 @@ fn jump_backward(cx: &mut Context) {
let (view, doc) = current!(cx.editor);
if let Some((id, selection)) = view.jumps.backward(view.id, doc, count) {
- // manually set the alternate_file as we cannot use the Editor::switch function here.
- if view.doc != *id {
- view.last_accessed_doc = Some(view.doc)
- }
view.doc = *id;
let selection = selection.clone();
let (view, doc) = current!(cx.editor); // refetch doc