Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Support for Correct Rendering and Cursor Movement of Grapheme Clusters #1194

Open
erf opened this issue May 31, 2024 · 0 comments

Comments

@erf
Copy link
Contributor

erf commented May 31, 2024

What feature would you like to see?

Hello,

I’d like to raise an issue regarding the correct rendering and cursor movement of grapheme clusters or user-perceived characters, such as emojis composed of multiple code points (e.g., ❤️‍🔥🧑‍🧑‍🧒‍🧒).

Currently, it appears that each cell in vis is treated as a single code point, resulting in incorrect rendering of these characters. For example, here is a screenshot of hi👩‍👩‍👦‍👦❤️‍🔥bye in vis:

Screenshot 2024-06-01 at 00 45 06

Here is the output from cat:

Screenshot 2024-06-01 at 00 49 05

And here is a screenshot from my toy editor vid where I've tried to focus on these issues:

Screenshot 2024-06-01 at 01 26 05

Supporting correct rendering and cursor movement of grapheme clusters might require a significant refactor, and I'm not sure if this is a priority or even feasible. However, I believe that modern text editors should support this feature according to the Unicode spec.

This issue is likely related to this old issue, which I have closed in favor of this one.

I understand that larger issues should be discussed on the vis mailing list. However, I would prefer to follow the discussion here on GitHub. I’m not familiar with mailing lists, and I believe GitHub offers a better user experience for discussion, as long as we can keep the conversation civil and positive. 🙏

Thank you for considering this request!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant