Fix applyDelta with block embed #3777
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #3620
There are two cases where an implicit newline char (
\n) could be added:\n) or right before a block embed, an implicit\nwill be appended to that op.\n, an implicit\nwill be prepended to the op.Before this PR, we only tracked the first case with a flag
addedNewline. When it's true, we increase the index by 1 and record it indeleteDeltato delete it. The reason we want to delete it instead of skipping it is that a following op may contain a\n, which makes the implicit\nredundant.However, we didn't catch the second case which led to #3620. This PR added another flag
isImplicitNewlinePrependedfor that case. Instead of deleting the implicit\n, we will just skip it because we know for sure the implicit\nis needed.