Skip to main content

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}