Suggestion for option to getTokenAt()/getStateBefore()
to improve precision after edits
#1610
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.
Because re-highlighting is delayed after an edit, the cached mode state for lines after
doc.frontier
can be invalid. This proposal adds aprecise
option togetTokenAt()
andgetStateBefore()
that makes them ignore line states after the frontier when trying to find the first valid line.This doesn't guarantee total accuracy since it will still cut off the search at 100 lines, but it will be at least as accurate as the case where no highlighting had previously been run. (And, in most cases, the thing we're trying to get the token for will be near the last edit point, so it will usually hit the frontier.)
I'm open to other approaches to dealing with this issue, but this seemed the least invasive to me.