diff options
author | Michael Davis | 2022-10-10 20:15:37 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-10-11 03:17:32 +0000 |
commit | c388e16e09b36c665c4f92db4f7a071e7c1d9761 (patch) | |
tree | 40bf9fe3dbacaac21a131bb67c896d9395930d64 /helix-view/src/lib.rs | |
parent | 0aedef03334dfc0cb2a723cce23abc5b4ca55a22 (diff) |
Add a helper function for applying transactions
It is easy to forget to call `Document::apply` and/or `View::apply` in
the correct order. This commit introduces a helper function which
closes over both calls.
Diffstat (limited to 'helix-view/src/lib.rs')
-rw-r--r-- | helix-view/src/lib.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/helix-view/src/lib.rs b/helix-view/src/lib.rs index 0145677d..276be441 100644 --- a/helix-view/src/lib.rs +++ b/helix-view/src/lib.rs @@ -64,6 +64,19 @@ pub fn align_view(doc: &Document, view: &mut View, align: Align) { view.offset.row = line.saturating_sub(relative); } +/// Applies a [`helix_core::Transaction`] to the given [`Document`] +/// and [`View`]. +pub fn apply_transaction( + transaction: &helix_core::Transaction, + doc: &mut Document, + view: &mut View, +) -> bool { + // This is a short function but it's easy to call `Document::apply` + // without calling `View::apply` or in the wrong order. The transaction + // must be applied to the document before the view. + doc.apply(transaction, view.id) && view.apply(transaction, doc) +} + pub use document::Document; pub use editor::Editor; pub use theme::Theme; |