This adds to the heuristics introduced for #1071. Please read that issue
and associated PRs in their entirety to understand this commit.
This extends our concept of "whitespace" to include powerline box
glyphs. We don't want to constrain nerd symbols next to powerline box
glyphs because box glyphs are often used to style and contain nerd
glyphs. For example, its common to see a right-facing semi-circle, then
a nerd font glyph, then a left-facing semi-circle to create a
pill-shaped label.
This allows those nerd font symbols to be rendered full size. Test
script below (copy the bytes):
printf "\n"
printf " \n"
printf "\n"
Dingbats are generally symbolic glyphs that frequently overflow the
cell. Their defined codepoint width is "1" so they take one cell but
very often overflow to the next.
This extends the previously created logic for Nerd Font symbols such
that when a dingbat is next to whitespace, we allow it to use the full
size, but when a dingbat is next to an occupied cell we constrain it to
the cell size.
This adds the Powerline glyphs to the exemptions from the PUA
constraints put in as a part of #1110.
While Powerline is considered to part of the Nerd Font group, the
constraint behavior seems to cause issues with some setups - e.g.
powerlevel10k prompts where characters immediately follow a Powerline
character.
Only the codes given as shapes below are included:
https://github.com/ryanoasis/powerline-extra-symbols/blob/master/img/fontforge.pngFixes#1113, where the issue can be seen.