Fix bug when the client sends multiple contentChanges at once #1131
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.
On a textDocument/didChange notification, if the contentChanges contain multiple entries, each of them needs to be handled as if all previous changes were already applied. When we don't, the calculation of the change's byte offsets will be wrong, which can lead to a syntax tree that produces parsing errors where the actual file does not have any issues.
To solve this, we now apply the text of each change record to the full file text and use the result when applying the next change of the contentChanges array.
I think this will fix #878 (see issue comments for details).