Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rethink what data is needed in LiveRange#event:change #4378

Closed
scofalik opened this issue Jul 24, 2018 · 1 comment · Fixed by ckeditor/ckeditor5-engine#1497
Closed

Rethink what data is needed in LiveRange#event:change #4378

scofalik opened this issue Jul 24, 2018 · 1 comment · Fixed by ckeditor/ckeditor5-engine#1497
Assignees
Labels
package:engine type:improvement This issue reports a possible enhancement of an existing feature.
Milestone

Comments

@scofalik
Copy link
Contributor

This is a follow-up after OT refactor PR:
ckeditor/ckeditor5-engine#1459

Before OT refactor, LiveRange#change:event had a data object with some data about the change. It was simple, because only InsertOperation and MoveOperation could change the tree. After refactor we have four new operations and the old data object with its properties did not fit them.

So right now we pass the whole operation with the event. This however might not be the best idea, as @pjasiun wrote:

If we will keep it this way changes in opeartion will have to be marked as breaking changes.

@scofalik scofalik self-assigned this Jul 24, 2018
@scofalik
Copy link
Contributor Author

AFAICS this is used only in documentselection.js and the information that is needed is the position from which the range was removed (this is not the same as old range start position).

pjasiun referenced this issue in ckeditor/ckeditor5-engine Aug 9, 2018
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 mlewand transferred this issue from ckeditor/ckeditor5-engine Oct 9, 2019
@mlewand mlewand added this to the iteration 20 milestone Oct 9, 2019
@mlewand mlewand added module:model type:improvement This issue reports a possible enhancement of an existing feature. package:engine labels Oct 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package:engine type:improvement This issue reports a possible enhancement of an existing feature.
Projects
None yet
2 participants