You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DECSET 2027 allows telling the terminal to perform grapheme clustering on incoming text as opposed to simply taking the wcwidth of each individual code point (wcwidth typically uses the East Asian Width property in the Unicode database). The wcwidth method doesn't work for certain multiple code point emojis (and probably other things).
Neovim supports this since 0.11 so its actually useful to implement.
Supporting this will be awkward for older terminals, because there's on real way to render the text correctly in if the outer terminal doesn't support this. For those cases, we need to forcibly set the cursor after writing the cell. This feature can be supported on at least coutour, ghostty, wezterm (mode 2027 is always on, but we can move the cursor manually when mode 2027 is off), and kitty (via text sizing protocol).
Uh oh!
There was an error while loading. Please reload this page.
Summary
DECSET 2027 allows telling the terminal to perform grapheme clustering on incoming text as opposed to simply taking the
wcwidth
of each individual code point (wcwidth
typically uses the East Asian Width property in the Unicode database). Thewcwidth
method doesn't work for certain multiple code point emojis (and probably other things).Neovim supports this since 0.11 so its actually useful to implement.
Supporting this will be awkward for older terminals, because there's on real way to render the text correctly in if the outer terminal doesn't support this. For those cases, we need to forcibly set the cursor after writing the cell. This feature can be supported on at least coutour, ghostty, wezterm (mode 2027 is always on, but we can move the cursor manually when mode 2027 is off), and kitty (via text sizing protocol).
The spec is here: https://github.com/contour-terminal/terminal-unicode-core
Progress
The text was updated successfully, but these errors were encountered: