Keep two editors on one document by replaying each one's steps into the
other. a owns the undo history: edits made in b are recorded in a
and never in b, so undo in either pane undoes the same thing and the
two never disagree about what "undo" means.
If a step cannot apply (the documents diverged, a rejected step, a
transform on one side only), the receiving editor is resynchronized from
the sender's document wholesale.
Keep two editors on one document by replaying each one's steps into the other.
aowns the undo history: edits made inbare recorded inaand never inb, so undo in either pane undoes the same thing and the two never disagree about what "undo" means.If a step cannot apply (the documents diverged, a rejected step, a transform on one side only), the receiving editor is resynchronized from the sender's document wholesale.