tonsky / FiraCode

Free monospaced font with programming ligatures
SIL Open Font License 1.1
77.27k stars 3.1k forks source link

Ligatures display incorrectly for "fi" when cv06 enabled #1497

Open zibo-wang opened 1 year ago

zibo-wang commented 1 year ago

When I enabled cv06 in the build, it displayed character "i" incorrectly in the combo "fi" despite the choice of ss10, but trivial "i" or other combos are correct. Please see the example in the following picture. image

The font was built with docker by the following command:

docker run --rm -v "$PWD":/opt tonsky/firacode:latest ./script/build.sh -f "cv01,cv02,cv06,ss01,ss05,ss04,ss03,cv
30,ss08,ss09,cv25,cv26,cv32,cv28,ss06,ss07"

A newfound: this issue happens in the kitty terminal and Windows terminal I used but doesn't seem to be a problem in the terminal in VSCode. Note that I have ligatures enabled in all of those terminals.

tonsky commented 1 year ago

Interesting! I’ll look into it

mrak commented 1 year ago

I am able to reproduce this in both kitty and wezterm (MacOS and Linux). Using any of cv03..06 causes the i in "if" to appear as configured, but the i in "fi" always has the default appearance.

The same behavior is observed with lT versus Tl and cv07..10. The L in "lT" renders as expected. The L after T in "Tl" always renders as the default appearance.

I do not notice this behavior with "lf" and "fl" (lowercase L). Choosing any of cv07..10 renders the "l" as configured regardless of placement around the f.

bcrotty commented 1 year ago

I don't think VS Code terminal supports ligatures at all yet (see here), but this issue is present in the VS Code editor. fi has the issue of not respecting the cv03..06 choice, but fl does respect the cv07..10 choice.

zibo-wang commented 1 year ago

I don't think VS Code terminal supports ligatures at all yet (see here), but this issue is present in the VS Code editor. fi has the issue of not respecting the cv03..06 choice, but fl does respect the cv07..10 choice.

Well vscode magically have no issue with the ligature on my end but other emulators have.

tjex commented 1 year ago

Having the same issue. All variations of cvN (for variations of i) behave the same. ie, fi is unchanged. I'm using wezterm

Screenshot 2023-10-18 at 10 16 03