sivtr_core/parse/mod.rs
1pub mod ansi;
2pub mod unicode;
3
4use crate::buffer::line::Line;
5
6/// Parse raw text (potentially containing ANSI escape sequences) into Line objects.
7pub fn parse_lines(raw: &str) -> Vec<Line> {
8 raw.lines()
9 .map(|line_str| {
10 let clean = ansi::strip_ansi(line_str);
11 let display_widths = unicode::compute_display_widths(&clean);
12 let styles = ansi::parse_styles(line_str);
13 Line {
14 content: clean,
15 display_widths,
16 styles,
17 }
18 })
19 .collect()
20}