better heuristic for determining active clause #526
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.
I got frustrated by the TOC not always correctly determining the clause that I was reading. Experimentally, this heuristic works very well. It chooses either the first clause that is fully visible (except when at the bottom of the viewport) or, if there are none, the clause that straddles the vertical midpoint of the viewport. This has the helpful property that clicking the TOC item always ends up marking that item as active (except possibly the very final clause(s) of the document).
edit: For reference, the previous heuristic was that the clause straddled the top of the viewport, meaning the active clause was often mostly out of view.