From d1fde5c0c1cf60d5761de4b1981850daff569b37 Mon Sep 17 00:00:00 2001 From: Tyler Hallada Date: Fri, 10 Apr 2026 20:16:12 +0000 Subject: [PATCH] Use better tab indicator characters Works in more fonts/terminals. --- src/ui/components/typing_area.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ui/components/typing_area.rs b/src/ui/components/typing_area.rs index d1fda36..fb237e8 100644 --- a/src/ui/components/typing_area.rs +++ b/src/ui/components/typing_area.rs @@ -175,10 +175,10 @@ fn build_render_tokens(target: &[char]) -> Vec { let mut display = String::new(); if tab_width > 1 { for _ in 0..(tab_width - 1) { - display.push('\u{2500}'); // ─ + display.push('\u{00B7}'); // · } } - display.push('\u{21E5}'); // ⇥ + display.push('\u{2192}'); // → tokens.push(RenderToken { target_idx: i, display, @@ -309,18 +309,18 @@ mod tests { let target: Vec = "\tx".chars().collect(); let tokens = build_render_tokens(&target); assert_eq!(tokens.len(), 2); - // Tab at col 0: width = 4 - (0 % 4) = 4 => "───⇥" - assert_eq!(tokens[0].display, "\u{2500}\u{2500}\u{2500}\u{21E5}"); + // Tab at col 0: width = 4 - (0 % 4) = 4 => "···→" + assert_eq!(tokens[0].display, "\u{00B7}\u{00B7}\u{00B7}\u{2192}"); assert!(!tokens[0].is_line_break); assert_eq!(tokens[0].target_idx, 0); } #[test] fn test_render_tokens_tab_alignment() { - // "ab\t" -> col 2, tab_width = 4 - (2 % 4) = 2 => "─⇥" + // "ab\t" -> col 2, tab_width = 4 - (2 % 4) = 2 => "·→" let target: Vec = "ab\t".chars().collect(); let tokens = build_render_tokens(&target); - assert_eq!(tokens[2].display, "\u{2500}\u{21E5}"); + assert_eq!(tokens[2].display, "\u{00B7}\u{2192}"); } #[test] @@ -330,6 +330,6 @@ mod tests { let tokens = build_render_tokens(&target); assert_eq!(tokens.len(), 3); assert!(tokens[0].is_line_break); - assert_eq!(tokens[1].display, "\u{2500}\u{2500}\u{2500}\u{21E5}"); + assert_eq!(tokens[1].display, "\u{00B7}\u{00B7}\u{00B7}\u{2192}"); } }