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.
close #102
Support monospace ligatures by including
harfbuzz
.To render font features like ligature, it's required to use a font shaping engine. Here I use Harfbuzz for both shaping and cross-platform. So instead of writing the same logic using platform-specific shaping engine which I am also unfamiliar with, I just need to write a simple wrapper around
harfbuzz-sys
inhb_wrapper.rs
.Notice that I also enforce the use of
freetype
feature forfont-kit
asfont-kit
would use platform-specific rasterization library by default which would breaks the logic ofharfbuzz
.The application works well in macOS. However, I haven't test it on Windows or Linux yet. I would give it a test on these platforms when I have time.
JetBrains Mono:
Iosevka:
Fira Code: