Improve handling of fractional width fonts #525
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.
The default font for the
corretto-11
JDK (at least on my Mac) is Menlo 12 point. This results in nice 8 pixel character widths and integer maths. Ifjbr-11
is used, the font is JetBrains Mono 13 point, which has characters that are 7.8 pixels wide (I don't know why a larger font has a smaller pixel side, but that's not really the problem here).Most APIs to work with editor positions uses integers, which can cause rounding errors. I don't think this caused any obvious issues in production - possibly some minor off-by-one (or two) errors in column positioning, but it does cause issues with tests, where we need reproducibility.
This PR updates
EditorHelper
to overcome rounding errors in scrolling, and updates tests to correctly calculate expected offsets. Tests now run on bothcorretto-11
andjbr-11
.