zyedidia / micro

A modern and intuitive terminal-based text editor
https://micro-editor.github.io
MIT License
24.39k stars 1.16k forks source link

New emojis (2021 Unicode 14.0+) cause rendering issues #3264

Open Andriamanitra opened 2 months ago

Andriamanitra commented 2 months ago

Description of the problem or steps to reproduce

Open the following snippet, go to the second line and move cursor right. It is still highlighting the emoji. Move cursor right again and it will highlight 'x', but if you try to insert a character it will be rendered on top of the 'x' instead of before it. Once you move the cursor out of the line with the problematic emoji it will be rendered correctly again. Deleting characters on the line with the emoji will also cause weird rendering glitches.

🥲abc # emoji from Unicode 13.0, works ok
🫤xyz # emoji from Unicode 14.0, causes problems

The issue is caused by go-runewidth (which micro depends on) using an old Unicode specification. There is an open pull request to update it to Unicode 15.0 but the repo seems to not be very actively maintained.

Specifications

micro v2.0.14-dev Commit hash: 18f3e1bf OS: Linux Terminal: terminator 2.1.3

JoeKar commented 2 months ago

There is an open pull request to update it to Unicode 15.0 but the repo seems to not be very actively maintained.

Hm, sounds like a fork is necessary. Unfortunately we've no sufficient rights to place it into the most fitting place, which is the micro-editor organization.

@zyedidia: I saw you did some work forking a newer tcell into the above mentioned org. What do you think about go-runewidth (or the rest of the dependencies in your space :wink:)?

The best would be if it is updated upstream, but it doesn't look most likely.