aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/commands
diff options
context:
space:
mode:
authorMichael Davis2022-10-10 19:56:26 +0000
committerBlaž Hrastnik2022-10-11 03:17:32 +0000
commit0aedef03334dfc0cb2a723cce23abc5b4ca55a22 (patch)
tree17e017760f23147c821bb25b0af027c47b08f10b /helix-term/src/commands
parentd418f0795d8a33c83ad87c5530c4819d83da09ef (diff)
Apply transactions to Views
This change adds View::apply calls for all Document::apply call-sites, ensuring that changes to a document do not leave invalid entries in the View's jumplist.
Diffstat (limited to 'helix-term/src/commands')
-rw-r--r--helix-term/src/commands/lsp.rs5
-rw-r--r--helix-term/src/commands/typed.rs6
2 files changed, 7 insertions, 4 deletions
diff --git a/helix-term/src/commands/lsp.rs b/helix-term/src/commands/lsp.rs
index 1113b44e..726aec67 100644
--- a/helix-term/src/commands/lsp.rs
+++ b/helix-term/src/commands/lsp.rs
@@ -596,9 +596,7 @@ pub fn apply_workspace_edit(
}
};
- let doc = editor
- .document_mut(doc_id)
- .expect("Document for document_changes not found");
+ let doc = doc_mut!(editor, &doc_id);
// Need to determine a view for apply/append_changes_to_history
let selections = doc.selections();
@@ -620,6 +618,7 @@ pub fn apply_workspace_edit(
offset_encoding,
);
doc.apply(&transaction, view_id);
+ view_mut!(editor, view_id).apply(&transaction, doc);
doc.append_changes_to_history(view_id);
};
diff --git a/helix-term/src/commands/typed.rs b/helix-term/src/commands/typed.rs
index 96ff75c5..574e895b 100644
--- a/helix-term/src/commands/typed.rs
+++ b/helix-term/src/commands/typed.rs
@@ -463,6 +463,7 @@ fn set_line_ending(
}),
);
doc.apply(&transaction, view.id);
+ view.apply(&transaction, doc);
doc.append_changes_to_history(view.id);
Ok(())
@@ -884,6 +885,7 @@ fn replace_selections_with_clipboard_impl(
});
doc.apply(&transaction, view.id);
+ view.apply(&transaction, doc);
doc.append_changes_to_history(view.id);
Ok(())
}
@@ -1004,7 +1006,7 @@ fn reload(
let scrolloff = cx.editor.config().scrolloff;
let (view, doc) = current!(cx.editor);
- doc.reload(view.id).map(|_| {
+ doc.reload(view).map(|_| {
view.ensure_cursor_in_view(doc, scrolloff);
})
}
@@ -1399,6 +1401,7 @@ fn sort_impl(
);
doc.apply(&transaction, view.id);
+ view.apply(&transaction, doc);
doc.append_changes_to_history(view.id);
Ok(())
@@ -1443,6 +1446,7 @@ fn reflow(
});
doc.apply(&transaction, view.id);
+ view.apply(&transaction, doc);
doc.append_changes_to_history(view.id);
view.ensure_cursor_in_view(doc, scrolloff);