Function to get all tokens of a line #2908
Closed
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.
So in Brackets, we've a function that runs
getTokenAt()
for every single token to find all modes in a particular file.While this is OK on normal-length lines, it takes ages on very long lines. So, assuming you have a line with 10000 tokens, the main while loop, and therefore
readToken
will run 50,005,000 times! (t / 2 * (t + 1)
, wheret
is the token count).With the function
getTokensOfLine
, newly introduced in this PR, the while loop will only run 10,000 times, as it pushes all its results into an array ;)Hope you're interested in this function as well.