source-foundry / Hack

A typeface designed for source code
http://sourcefoundry.org/hack/
Other
16.49k stars 615 forks source link

Viewing invisible special purpose characters while coding #196

Open salarmehr opened 8 years ago

salarmehr commented 8 years ago

Providing a distinct symbol for each invisible character (BOM, Combining Grapheme Joiner, Left-to-right mark / Right-to-left mark, Soft hyphen Word joiner, Zero-width joiner, Zero-width non-joiner, Zero-width space) is really useful while creating UI and processing text. (https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Special-purpose_characters)

https://www.microsoft.com/typography/otfntdev/glyphs.htm https://commons.wikimedia.org/wiki/Category:IEC_60417_symbols

When you are coding you want to see such characters. They are needed to be invisible only for the end-users. Similar to clicking on ¶ when you are authoring a document in MS word or other text-editors.

For example, copy and run this in js console: ‍‍"OK"=="O‌K". It returns false. Do you know why? The advantages of being able to see theses invisible characters are specially clear for me and whose their writing system use such characters frequently (Persian, German, Hebrew, …).

There are not many invisible special purpose characters. these should be enough to be included: bgh2t 1

chrissimpkins commented 8 years ago

@salarmehr Thanks for this suggestion Reza. I'd be happy to include these glyphs. I need to do a bit more reading to better understand their use. Would it be possible to provide some screenshots of what you expect to see with the use of the glyphs in your documents using a set of fonts that include them? I need a gauge of height and width, stroke dimensions relative to surrounding glyphs (e.g. should bold be rendered with increased stroke width as with the alphabetic glyphs in the set?), and information on whether they are typically slanted in italic sets.

salarmehr commented 8 years ago

Glad to hear that. consider this. As a starting point I suggest using middle dot to represent them and later choose a unique glyph for each one.

chrissimpkins commented 8 years ago

As a starting point I suggest using middle dot to represent them and later choose a unique glyph for each one

👍

Would still appreciate any screenshots that you could provide to demonstrate these in context. I've never used them in text and could use some visuals to completely understand your request here.

salarmehr commented 8 years ago

There are examples on their wikipedia page e.g. https://en.wikipedia.org/wiki/Zero-width_non-joiner

an example for zwnj: ی‌ی = ی+ZWNJ+ی ی+ی=یی

In Hack this ی‌ی should be shown as ی·ی

chrissimpkins commented 8 years ago

I see. That is helpful. Thanks

salarmehr commented 8 years ago

@iamkarlson Sorry, I didn't get the point.

iamkarlson commented 8 years ago

My fault, I've double checked it's depending on color scheme