aboutsummaryrefslogtreecommitdiff
path: root/helix-term
diff options
context:
space:
mode:
authorMichael Davis2022-11-27 16:33:51 +0000
committerBlaž Hrastnik2022-11-29 16:15:20 +0000
commitdf5457a6e71b58a39e198642efd7be0c4963153d (patch)
tree4d24403b44947a7e479dcf0b65e6c284d1f4c3ce /helix-term
parent04df9e444523ced5d3bedbe34e2f622d675cccb2 (diff)
Remove eager application of transactions to all views
Diffstat (limited to 'helix-term')
-rw-r--r--helix-term/src/ui/editor.rs26
1 files changed, 3 insertions, 23 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index 73712503..6c8ee2d9 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -1337,9 +1337,7 @@ impl Component for EditorView {
cx.editor.status_msg = None;
let mode = cx.editor.mode();
- let (view, doc) = current!(cx.editor);
- let original_doc_id = doc.id();
- let original_doc_revision = doc.get_current_revision();
+ let (view, _) = current!(cx.editor);
let focus = view.id;
if let Some(on_next_key) = self.on_next_key.take() {
@@ -1415,31 +1413,13 @@ impl Component for EditorView {
let view = view_mut!(cx.editor, focus);
let doc = doc_mut!(cx.editor, &view.doc);
+ view.ensure_cursor_in_view(doc, config.scrolloff);
+
// Store a history state if not in insert mode. This also takes care of
// committing changes when leaving insert mode.
if mode != Mode::Insert {
doc.append_changes_to_history(view.id);
}
-
- // If the current document has been changed, apply the changes to all views.
- // This ensures that selections in jumplists follow changes.
- if doc.id() == original_doc_id
- && doc.get_current_revision() != original_doc_revision
- {
- if let Some(transaction) =
- doc.history.get_mut().changes_since(original_doc_revision)
- {
- let doc = doc!(cx.editor, &original_doc_id);
- for (view, _focused) in cx.editor.tree.views_mut() {
- view.apply(&transaction, doc);
- }
- }
- }
-
- let view = view_mut!(cx.editor, focus);
- let doc = doc_mut!(cx.editor, &view.doc);
-
- view.ensure_cursor_in_view(doc, config.scrolloff);
}
EventResult::Consumed(callback)