githubnext / monaspace

An innovative superfamily of fonts for code
https://monaspace.githubnext.com
SIL Open Font License 1.1
13.16k stars 219 forks source link

make the underline apart as default and linked as ligature #124

Closed Firestar-Reimu closed 2 months ago

Firestar-Reimu commented 7 months ago

In python, there are codes like __init__(self)

the 2 underlines will link together in monaspace, which is harder to read (as one will wonder if its 1 underline or 2 underlines)

I think we can make the underline apart as default (the width as like 80% width of x) and linked as ligature, like JetBrains Mono NL/JetBrains Mono, PT Mono and SF Mono also has the underline apart.

Finii commented 5 months ago

Just adding information to your Issue: Hmm, looks like they are just as wide as the advance width, this is no liga at play (which I initially thought)

image

UncleGoogle commented 3 months ago

OTOH I like the current esthetics, for me the length of _init_ vs __init__ is good enough to distinguish, especially that both-sides one-underscore variables are rather rare (in comparison to magic methods). I mean in 99% of the time you are dealing with known magic methods like __iter__ or some custom API eg. _missing_ in Enum

But I understand the concern.

One idea to fix it without breaking a feature of continued line _______ is to add an optional ligature (in separate group for settings) that makes two underscores separated, but 3+ underscores would be render normally (if this is possible to have such exclusions at all).

I don't mind if this is changed in favor of separated underscores though.

idan commented 2 months ago

Fixed in ca8015b27bdc6d8e1201b1ad722f4ae3c38970d0