[4.0] Fix multi-line string syntax coloring issues #10382
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.
Explanation: With multi-line strings, edits on one line can make tokens appear/disapear on previous and later lines, which broke assumptions in the existing syntax highlighting logic. This left odd ranges of source unhighlighted or incorrectly highlighted.
Scope: Affects syntax highlighting of source files when users edit multi-line strings.
Radar: rdar://problem/32148117
Risk: Low; The change is limited to syntax highlighting
Testing: Added regression tests and measured the per-keystroke performance in a file with 12K lines of code (it's ~50ms, down from ~80ms).