diff options
author | Michael Davis | 2022-10-10 19:56:26 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-10-11 03:17:32 +0000 |
commit | 0aedef03334dfc0cb2a723cce23abc5b4ca55a22 (patch) | |
tree | 17e017760f23147c821bb25b0af027c47b08f10b /helix-term/src/commands | |
parent | d418f0795d8a33c83ad87c5530c4819d83da09ef (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.rs | 5 | ||||
-rw-r--r-- | helix-term/src/commands/typed.rs | 6 |
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); |