Skip to content

Comments

Add grapheme cluster support and update emoji widths fixes #100#103

Open
stalep wants to merge 1 commit intoaeshell:masterfrom
stalep:issue_100
Open

Add grapheme cluster support and update emoji widths fixes #100#103
stalep wants to merge 1 commit intoaeshell:masterfrom
stalep:issue_100

Conversation

@stalep
Copy link
Member

@stalep stalep commented Feb 20, 2026

Add infrastructure for Mode 2027 terminal protocol which enables UAX #29 grapheme cluster segmentation for correct cursor positioning with multi-codepoint characters (ZWJ emoji, flag sequences, etc.).

  • ANSI: add DECRQM/DECRPM constants and parser for Mode 2027
  • Device: add supportsGraphemeClusterMode to TerminalType enum (true for Ghostty, WezTerm, Kitty, Contour, Foot)
  • TerminalEnvironment: add supportsGraphemeClusterMode delegation
  • Connection: add query/enable/disable methods for Mode 2027
  • WcWidth: add emoji ranges U+1F300-1FAFF as width-2

Add infrastructure for Mode 2027 terminal protocol which enables
UAX aeshell#29 grapheme cluster segmentation for correct cursor positioning
with multi-codepoint characters (ZWJ emoji, flag sequences, etc.).

- ANSI: add DECRQM/DECRPM constants and parser for Mode 2027
- Device: add supportsGraphemeClusterMode to TerminalType enum
  (true for Ghostty, WezTerm, Kitty, Contour, Foot)
- TerminalEnvironment: add supportsGraphemeClusterMode delegation
- Connection: add query/enable/disable methods for Mode 2027
- WcWidth: add emoji ranges U+1F300-1FAFF as width-2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant