On current implementation, emoji characters in range 0x2300-0x1f000 is not listed which return 2 from utf_char2cells(). I know this is compatible issue.
Now, I'm thinking that user who got the compatible issue should set ambiwidth=single. So I suggest to return 2 for the emoji characters in the range 0x2300-0x1f000, if ambiwidth=double.
If you don't like this, I can make patch to add new option or detect locale string is CJK.
https://github.com/vim/vim/pull/2074
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
I get very confused about the 'emoji' option. The docs say:
When on all Unicode emoji characters are considered to be full width.
But then it only applies to the characters in emoji_width, not
emoji_all. Why doesn't it use emoji_all?Then utf_ambiguous_width() returns true for all emoji characters, but
when 'amibwidth' is "double" this isn't taken into account.
Please remember this thread on mailing list.
So what should be the proper behavior? Are there any characters in emoji_all that are always single width? The utf_ambiguous_width() needs to be ajusted.
Some of terminal still not be fixed to show emoji as square box. On such terminal, ↖
is drawn as narrow width. There are two types of terminal. One of them draw ↖ as narrow, Other one draw ↖ as wide. So we should provide way to switch them.
I thought for the way to fix this issue. And I guess the user who expect narrow width for ↖ should set ambiwidth=single.
However, I can not make sure that there are no side effects from my suggestion. So, if you do not like this change, I can prepare another option.
—
Is it right to say that all emoji characters should be double width, but
in some fonts a subset is single width?
Sorry, my idea is bad. you are right. So it can't define with single option emoji. How about following ideas to correct this issue.
let cells = {
\ "2139",
\ "2194-2199",
\ ...
\}
call setwcwidth(cells)
:loadwcwidthfile /path/to/wcwidth.txt
Should be list as same as above func.
int my_wcwidth(int c) { return /* my custom width */ }
or
int my_wcwidth(const char fontname, int c) { return /* my custom width */ }
Is this PR going to be worked on or shall we close it?
I want still working on this.
There is no progress on this, and also I don't see any issues being reported for emoji's. Therefore closing this. If you do have a known problem, please explain.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Closed #2074.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Ref: 08aac3c
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.