Skip to main content

visible_width

Function visible_width 

Source
pub fn visible_width(s: &str) -> usize
Expand description

Number of terminal columns s occupies, ignoring ANSI escape sequences.

Wide characters (CJK, most emoji) count as two columns, combining marks as zero, and emoji presentation sequences such as ⚠️ (U+26A0 U+FE0F) as two.

use shellgame::ui::text::visible_width;

assert_eq!(visible_width("Příliš žluťoučký"), 16);
assert_eq!(visible_width("\x1b[31mred\x1b[0m"), 3);
assert_eq!(visible_width("💡 tip"), 6);
assert_eq!(visible_width("⚠️"), 2);