#error #diagnostics #lang-dev

lerr

为 lang-dev 提供简单的错误处理

6 个版本

0.1.5 2023 年 9 月 17 日
0.1.4 2023 年 9 月 16 日

#68 in #diagnostics


lemu 中使用

MIT 许可协议

25KB
337 代码行(不含注释)

lerr

为 lang-dev 提供极简的错误诊断

example error

使用方法

以下为上述示例的代码。您可以使用您喜欢的着色 crate 进行着色,或者直接使用原始 ansi 序列。

use comat::cformat as cmt;
use lerr::Error;
let mut e = Error::new("Strin::nouveau().i_like_tests(3.14158)");
e.message(cmt!(r#"{bold_red}error{reset}: unknown function {bold_red}String::new(){reset}"#))
    .label((0..5, cmt!("you probably meant {black}String{reset}")))
    .label((7..16, cmt!("use {green}new(){reset}")))
    .label((17..18, cmt!("caps: {bold_cyan}I{reset}")))
    .label((30..37, cmt!("your {bold_yellow}π{reset} is bad")));
eprintln!("{e}");

请注意,目前尚不支持多行标签。如果这不符合您的需求,请使用类似 ariadne 的库。

依赖项

~0.8–1.3MB
~21K SLoC