[HarfBuzz] Ligatures
Eli Zaretskii
eliz at gnu.org
Mon May 25 15:30:37 UTC 2020
> Date: Sun, 24 May 2020 20:27:26 +0100
> From: Richard Wordingham <richard.wordingham at ntlworld.com>
> Cc: harfbuzz at lists.freedesktop.org
>
> It seems to me that Emacs knows what script a cluster is in; perhaps
> it just hasn't united the concepts.
It's a kind of coincidence: different scripts almost always require
different fonts, and Emacs only composes characters displayed in the
same font.
> Users may have written some weird clustering combinations, and I can
> imagine some weird combinations in the Private Use Areas. I should
> investigate.
Don't expect anything about PUA, Emacs doesn't assign any useful
properties to them.
> > That's a feature (you can disable it with disable-point-adjustment).
>
> Is this documented in info, or does one have to trawl the code to find
> out what it does?
Every variable in Emacs has a doc string, and you can search them with
several apropos commands. We don't describe in the manual every
obscure variable, there are too many of them.
> It seems that Emacs needs several levels of movement
> - by codepoints, by grapheme cluster, by akshara (will be the same as
> grapheme cluster in many cases) and by HarfBuzz cluster, or whatever
> is used to make access into lam-alif impossible.
I have no idea which one Emacs uses, not in these terms. All I can
say is that, in HarfBuzz terms, we get the number of "elements" from
hb_buffer_get_length, and then index the arrays returned by
hb_buffer_get_glyph_infos. Each "element" thus indexed is a separate
"thing" for display purposes, and Emacs by default won't let you
"enter" such a "thing", it will move across it in its entirety in one
go.
More information about the HarfBuzz
mailing list