[PERF] Don't split and join lines when using TextFile
#644
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.
Problem: When chaining
TextRangeSelector
andTextLineDeleter
the following happens:This might mean a lot of "useless" splits and joins, which becomes especially problematic for large files.
Solution: Introduce the new util function
findLineBounds()
. This function takes a sorted array of line indices, a regex to find line breaks and the text as parameters. It maps each line index to the start of the line and its length, stopping at the first non existent line index.I didn't remove the now unused
transformTextFileLines()
, because deleting working, tested code seems unnecessary, but let me know it you think otherwise.