tonsky / FiraCode

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

Separate "ligatures" and "contextual alternates"? #1404

Open iBug opened 2 years ago

iBug commented 2 years ago

I'm not a fan of ligatures like combined <= and ===, so I put 'calt' 0 in my font ligature settings.

However, I like "context-aware punctuation" as advertised in README, which is also gone with 'calt' 0.

Would you consider separating liga from calt so that with 'liga' 0 there's still "contextual punctuations" available?

As far as I can tell the current font does not use the liga flag.

Alternatively, there's a clig flag for "contextual ligature". My list of "font features" comes from https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist.

tonsky commented 2 years ago

I’ll see what could be done. You make a good point

kumarchandresh commented 2 years ago

On the same topic, would it be possible selectively enable ligatures? Opposite of #670 would give more refined control.

For example, I really like connected -> or => when writing Lambda Expressions but connected >> doesn't look right when using Generics e.g. Task<List<User>>.

iBug commented 2 years ago

@shivaGuy For your specific usage, I'd recommend you build your own "variant" with your selection of ligatures, then build your own font. For the record, I'm using "Fira Code iBug" currently.

See https://github.com/iBug-forks/FiraCode/commit/99cc87b5b77c45b5f18978f8016b0a8a0b4675ff for an example. The same method is also given at https://github.com/tonsky/FiraCode/issues/670#issuecomment-960667037