#error #report #display #highlight #pretty #error-message

lyneate

一个用于美观代码下划线和错误报告的 crate

4 个版本

0.2.1 2023年11月15日
0.2.0 2023年10月7日
0.1.1 2023年10月5日
0.1.0 2023年10月5日

#633 in Rust 模式


dust-lang 中使用

MIT 许可证

32KB
744

Lyneate

crates.io license docs.rs

在终端中显示美观的代码报告,支持单行和多行高亮。

示例

test
use colored::Colorize;
use lyneate::Report;

fn main() {
    println!(
        "{} Mismatched match expression branch return types\n",
        "Error:".bright_red()
    );

    let report = Report::new_char_spanned(
        include_str!("basic.pseudo"),
        [
            (
                29..102,
                format!("{}", "In this match expression".dimmed()),
                (255, 64, 112),
            ),
            (
                64..75,
                format!("{} {}", "This is of type".dimmed(), "int".bright_white()),
                (255, 159, 64),
            ),
            (
                87..92,
                format!("{} {}", "This is of type".dimmed(), "string".bright_white()),
                (207, 255, 64),
            ),
        ],
    );

    report.display();
}

更多示例

用法

此 crate 提供

  • 带有源代码和所有消息的范围、文本和颜色的迭代器的 Report 结构
  • 可以用于自定义报告显示外观的 ThemeThemeCharsThemeEffectsThemeSizing 结构

代码范围可以是字节对齐或字符对齐。提供了为两种情况构造 Report 的不同方法。

API 被保持得非常简单,以允许用户有尽可能多的灵活性。它不做任何假设也不关心源代码的来源。

计划中的功能

  • 无色支持。

依赖项

~0.6–11MB
~62K SLoC