diff options
Diffstat (limited to 'helix-core/src/transaction.rs')
-rw-r--r-- | helix-core/src/transaction.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/helix-core/src/transaction.rs b/helix-core/src/transaction.rs index d6b151ba..7871052a 100644 --- a/helix-core/src/transaction.rs +++ b/helix-core/src/transaction.rs @@ -369,6 +369,13 @@ impl Transaction { return false; } + // Compose this transaction with the previous one + let old_changes = state.changes.take(); + state.changes = Some(old_changes.map_or_else( + || self.changes.clone(), + |changes| changes.compose(self.changes.clone()).unwrap(), + )); + if let Some(syntax) = &mut state.syntax { // TODO: no unwrap syntax.update(&old_doc, &state.doc, &self.changes).unwrap(); |