diagnostics rendering crate
Find a file
2024-10-10 11:02:15 -03:00
samples implement multiline indicators 2023-12-22 23:50:53 -03:00
snapshots update deps & test updates 2024-10-10 11:02:15 -03:00
src update deps & test updates 2024-10-10 11:02:15 -03:00
.gitignore first commit 2023-07-02 20:49:46 -03:00
Cargo.lock update deps & test updates 2024-10-10 11:02:15 -03:00
Cargo.toml update deps & test updates 2024-10-10 11:02:15 -03:00
LICENSE.txt update readme with compact mode 2024-01-10 16:39:19 -03:00
README.md update readme with compact mode 2024-01-10 16:39:19 -03:00

yumy

a diagnostics rendering crate. yumy aims to be easy to use, focusing on simplicity.

example output

the diagnostic below is just an example.

example diagnostic

here's the same diagnostic printed in compact mode:

example diagnostic in compact mode

and here's the code for this diagnostic (it's a test in this crate!):

let src = Source::new(crate::test::RUST_SAMPLE_2, Some("src/main.rs"));
let diagnostic =
    Diagnostic::new("error[E0277]: `Rc<Mutex<i32>>` cannot be sent between threads safely".red())
        .with_label(Label::styled(
            247..260u32,
            "required by a bound introduced by this call",
            Style::new().yellow()
        ))
        .with_label(Label::styled(
            261..357u32,
            "`Rc<Mutex<i32>>` cannot be sent between threads safely",
            Style::new().red()
        ))
        .with_footnote("note: required because it's used within `{closure@src/main.rs:11:36: 11:43}`".green())
        .with_footnote("help: within `{closure@src/main.rs:11:36: 11:43}`, the trait `Send` is not implemented for `Rc<Mutex<i32>>`".blue())
        .with_source(src);

diagnostic.eprint(&Config::default()).unwrap();
diagnostic.eprint_compact(&Config::default()).unwrap();