clankerdiff-ratatui 0.1.6

Embeddable Ratatui diff review widget
Documentation
use clankerdiff_markdown::MarkdownDocument;
use clankerdiff_ratatui::{MarkdownLayoutOptions, MarkdownPresentation, MarkdownRenderer};
use clankerdiff_syntax::SyntaxHighlighter;
use clankerdiff_theme::ReviewTheme;

fn main() {
    let document = MarkdownDocument::parse(
        "# Plan\n\n- Preserve source identity\n\n```rust\nlet value = 42;\n```\n",
    );
    let theme = ReviewTheme::default();
    let mut highlighter = SyntaxHighlighter::default();
    for width in [60, 20] {
        let layout = MarkdownRenderer::new().render_layout(
            &document,
            MarkdownLayoutOptions {
                width,
                presentation: MarkdownPresentation::SourceLines,
                ..MarkdownLayoutOptions::default()
            },
            &theme,
            &mut highlighter,
        );
        println!(
            "Width {width}; source line 3 maps to {:?}",
            layout.rows_for_source_line(3)
        );
        for row in layout.rows().iter() {
            println!(
                "{:>3}{}",
                row.source.as_ref().map_or(0, |source| source.lines.start),
                row.line
            );
        }
    }
}