Mark2Mark / gintronic

This is a public repository where users can open issues for the monospaced font Gintronic by Mark Frömberg.
https://markfromberg.com/projects/gintronic/
27 stars 0 forks source link

Consider ligature support #4

Closed astrolemonade closed 1 year ago

astrolemonade commented 3 years ago

Lots of programming fonts support ligatures, something that wasn't a thing when Gintronic started. Today they improve readability a lot and sometimes help at saving screen width. image (image took from FiraCode repo ) There are more to be discussed but these are the minimum minimorum. The above picture shows some important ligatures that one programming font should support for better coding experience. As a workaround, you can add ligatures to the font from FiraCode(using https://github.com/ToxicFrog/Ligaturizer) which transfers some of the ligatures to Gintronic. The big issue is that they feel a little bit out of place and blurry sometimes!

Mark2Mark commented 3 years ago

Thanks for the links and input. I will have a look.

@cata0309 do you also happen to have some dummy code snippets which use as many of those ligatures as possible? When I design them, I need to see them in proper context. The overview from above is super helpful, but the context would be top notch.

Also which code editors do you use? Gintronic was mainly targeted into Sublime Text, Atom, Xcode and Mac Terminal back then. Currently I also use VS occasionally.

Mark2Mark commented 3 years ago

The multiply sign in the Hexadecimal Ex is weird: it’s not a multiply but should be an x in 0xFF

Mark2Mark commented 3 years ago

The equal signs are very debatable. In some programming languages it might be preferred as you see in the Ligatures On examples, but many programmers want to see for instance != or == as exactly those 2 characters they typed.

astrolemonade commented 3 years ago

image image

Mark2Mark commented 3 years ago

Can you elaborate and not just post screenshots please? I don’t know what those are about.

Also for the code snippets: I’d need them as text, not as images. Thank you!

astrolemonade commented 3 years ago

I can't know all the ligatures use case but you can try testing programming fonts with ligatures on this website: https://www.programmingfonts.org/ Choose somethink like JetBrainsMono/Iosevka etc

mariojackson commented 2 years ago

Hi @Mark2Mark

I'm thinking about buying the font. I like its uniqueness and style.

However, the font has its price and before buying it, I'd like to know if ligatures are planned. I would buy it in an instant if ligatures were being added in the future. Otherwise, I would have a hard time, since many other programming fonts which are cheaper, have ligatures.

Can you tell me whether ligatures are planned?

Thanks in advance!

Mark2Mark commented 2 years ago

Hi @mariojackson

Thanks for your request. During latest developments it seems that I wont be likely to add new features to Gintronic as it is. Only bugfixing. However I am working on the predecessor of Gintronic which I will release with my own foundry Hypertype soon. I am also considering to add ligatures for that one, even though I am a great disadvocat of coding ligatures myself. But I see there are user’s who wants them, so I’ll probably go the extra mile and add them there. I really respect your and other’s request, but also want to mke sure that you don’t buy anything in the hope to get features that does not yet claim to have. When the predecessor has ligatures, I’ll also advertise those as being included.

I’d be curious:

mariojackson commented 2 years ago

Hi @Mark2Mark

Thank you for your fast reply. I totally understand that ligatures are not for everybody and that it's more subjective. Thank you for being honest, I'll wait for your predecessor in this case. Do you already know around which time it will come out?

Mark2Mark commented 2 years ago

Hi @mariojackson,

Thanks for you input, that’s very helpful. I hope the release can be early ’22. We’re working with pressure on it.

I guess it would be reasonable to make some sort of list of ligatures and then mark those that are relevant and kick out others that are too much. I don’t even have a proper supervision of which ligatures can/should exist, as I am not working with too many programming languages or syntaxes. For me it is: Objective-C, C, Swift, Python, Java, JavaScript, PHP, CSS, HTML, markdown, shell and so on, but no Haskell, Closure, or Ruby or Go etc, where ligas might come in handy more, I guess.

effinsky commented 2 years ago

Is there a place catch a glimpse of the new monospace font?

Mark2Mark commented 2 years ago

Not at this very moment. But I hope soon.

astrolemonade commented 2 years ago

Looking forward to seeing the progress on the new monospace font too.

Mark2Mark commented 1 year ago

Thanks, Cons-Cat. I know what stylistic sets are ;)

BTW: onum, zero etc are not stylistic sets, but also separate OpenType-Features. Gintronic has similar things for the numbers, just that it is a lining number feature to turn on as the onums are default in this design.

My quoted question was not about the technical implementations of how those ligatures are made (I am well aware of that), but the differentiation of which ligatures should be forced and which should be added in a granular fashion by the user optionally.

kkirsche commented 1 year ago

Apologies if this feedback isn't useful, but wanted to throw my feedback in should it be of value.

  • Which editors and on which platfrom(s) are you programming?

I use VS Code primarily with Neovim as a fallback.

  • Is it okay if ligatures are optional, are those toggle-able in your IDEs?

Yes, they are. I learned how to do so via a different font, MonoLisa. See https://www.monolisa.dev/faq#how-to-enable-alternate-zero-stylistic-sets-and-the-script-variant for how they solve this problem (from the editor side, not the font itself).

  • Are there more important ligatures than others? Or is is a all or nothing?

In my opinion, the most important ligatures are ones that address visual kerning, such as ++ and ??, and ones that are meant to act as "shapes" such as -> and =>. It's not all or nothing for me, and as long as they cover the most common use cases, I don't think it's a big deal.

  • Are there certain levels of ligatures? E.g. the == should not be connected in my eyes, it’s changing the semantics too much. However, other ligatures are very plausible, so maybe there should be a way to to go gradually from no ligas over some ligasall the way to everything-ligas?

This is achievable, but I don't know technically how it's implemented by other fonts. I view it from a category mindset, such as equality could enable !=, ==, >=, etc., arrows may enable ->, =>, <=, <-, etc.

Thanks for all of your time and work. I greatly appreciate all you have done for Gintronic and love it as my terminal typeface.

Mark2Mark commented 1 year ago

Thank you, @kkirsche

Regarding the font features: Funny, I just added this today

The different levels could be implemented via different stylistic sets. So maybe ss01 only enables ==, ??, , => and ss02 enables more "advanced/unusal" ligatures, etc.

Many thanks for all your input. I will take it all into account. Glad that you like Gintronic. I will soon send out an update with some minor fixes as well as the narrower spacing as the default now (some IDE’s or terminals ignored that, so some users didn’t even see it. But in other IDE’s it turned out to look too much spaced appart.

effinsky commented 1 year ago

speaking of... there's narrower spacing? please link to how one enables that and/or to some examples of what that looks like. thanks!

Mark2Mark commented 1 year ago

It is coming very soon. I’ll send it out once it’s ready. It will be new font files to be replaced with the former ones.