You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Both WrapOperation and InsertOperation clone the nodes which they insert to keep unchanged node saved in operation.
At the moment, WrapOperation just clones the element saved in the operation and inserts to the model tree the cloned element. This is a bit unfortunate, as you can't do this:
constel=writer.createElement('myElement');writer.wrap(myRange,el);// Do anything with `el`, assuming it is in the model tree.constpos=Position.createAfter(el);
InsertOperation does it better. When executed, it clones the saved element, but it inserts the original element and saves the clone. WrapOperation should be done similarly.
The text was updated successfully, but these errors were encountered:
Other: Moved error logging from debug tools to OT code.
Other: Aligned `Schema#getValidRanges` results to changes in `AttributeOperation`.
Other: Unified `RemoveOperation` and `ReinsertOperation` to have just one `MoveOperation`.
Other: Simplified `LiveRange#event:change` second parameter which is now an object containing `Position` not an `Operation`.
Internal: Operational transformations refactor followups.
Internal: Additional improvements for the new OT algorithms.
Internal: Added relations to better solve cases in undo.
Internal: Improved cloning mechanism inside `WrapOperation`.
Internal: Improved `model.Range#getTransformedByMergeOperation`.
Internal: Other improvements in OT algorithms.
Internal: Improvements in docs.
Closes #1468. Closes #1464. Closes #1467. Closes #1460. Closes #1461. Closes #1462. Closes #1463. Closes #1475. Closes #1479.
BREAKING CHANGE: `LiveRange#event:change` second parameter is now an object containing property `deletionPosition`. It can be `model.Position` instance, if the range was moved to the graveyard root. The position is equal to the position from which nodes were removed. Otherwise, it is set to `null`.
BREAKING CHANGE: `Schema#getValidRanges` will return only flat ranges now. If an attribute is allowed on some nodes and in those nodes children, multiple "nested" ranges will be returned.
BREAKING CHANGE: `Schema#getValidRanges` is a generator now.
mlewand
transferred this issue from ckeditor/ckeditor5-engine
Oct 9, 2019
Both
WrapOperation
andInsertOperation
clone the nodes which they insert to keep unchanged node saved in operation.At the moment,
WrapOperation
just clones the element saved in the operation and inserts to the model tree the cloned element. This is a bit unfortunate, as you can't do this:InsertOperation
does it better. When executed, it clones the saved element, but it inserts the original element and saves the clone.WrapOperation
should be done similarly.The text was updated successfully, but these errors were encountered: