···5252behaviour is subject to ongoing discussion in the freedesktop.org terminal
5353working group. Support for this mode should therefore be considered best-effort
5454at the moment, especially when support for Brahmic, Arabic, and some east asian
5555-scripts is required.
5555+scripts is required. If you just want your emoji family to be 2 columns wide,
5656+this mode works well enough right now.
56575758This library does the following:
5859···6869Additionally, in the extended mode, the following rules apply:
69707071- If a grapheme cluster contains two or more non-spacing non-zero-width
7171- codepoints, its width is wide.
7272+ codepoints, its width is wide. "Spacing" codepoints in this context are all
7373+ codepoints with a `General_Category` of `Spacing_Mark`.
72747375This rule makes the width reported by this library across Erlang and Nodejs more
7476stable (Unicode version differences, see above), as well as closer match the
···101103102104# Testing
103105104104-I currently test against VTE (mainly gnome-terminal), Windows Terminal, Kitty, and foot for mode 2027 support.
106106+I currently test against VTE (mainly gnome-terminal), Windows Terminal, Kitty,
107107+and foot for mode 2027 support. I also test on Contour since they originally
108108+proposed the mode 2027 spec; however, they use a custom Unicode library that I
109109+don't trust fully.
105110106106-When reporting a mismatch, please include which terminal and the escaped codepoints. Gitlab/Discord sometimes like to strip certain modifiers.
111111+When reporting a mismatch, please include which terminal and the escaped
112112+codepoints. Gitlab/Discord sometimes like to strip certain modifiers.
···579579/// Replace all tab characters found in the string with the amount of spaces
580580/// that this tab would have had otherwise.
581581///
582582-/// This makes it save to prepend to a line, without changing the spacing produced
582582+/// This makes it safe to prepend to a line, without changing the spacing produced
583583/// by tabs anymore.
584584///
585585/// ### Examples