3个不稳定版本

0.2.1 2024年8月7日
0.2.0 2024年7月30日
0.1.0 2024年6月18日

#254编程语言

Download history 148/week @ 2024-06-13 188/week @ 2024-06-20 318/week @ 2024-06-27 359/week @ 2024-07-04 379/week @ 2024-07-11 286/week @ 2024-07-18 448/week @ 2024-07-25 308/week @ 2024-08-01 359/week @ 2024-08-08 397/week @ 2024-08-15

1,539 每月下载量
7 个crate(2个直接使用) 中使用

MIT 许可证

27KB
452 代码行

codesnake

codesnake 是一个Rust crate,用于显示代码块并标记其中的部分。它的名字来源于连接代码跨度与其对应标签的线条的蛇形外观。🐍 以下是它的输出示例

Example output

功能

  • 使用 &str 作为代码输入和跨度字节位置
  • 代码块内可包含多个跨度
  • 跨度可以跨越多行
  • 零依赖

虽然这个crate不支持开箱即用的彩色输出,但非常容易与其他crate(如 yansi)集成以在终端(ANSI)和网页(HTML)中生成彩色输出。

  • ariadne:我使用ariadne有一段时间了,但至少有一个月它有 破坏了语义版本控制,导致我的一个项目的构建失败。此外,这个crate的核心是一个超过700行的函数,作者本人也表示这个函数 非常复杂,有错误并且需要重写。codesnake 可以被视为是 ariadne 的重写,重点关注其核心功能。
  • codespan-reporting:这似乎是 ariadne 的精神前辈,但看起来很不幸地没有维护,最后发布于2021年。
  • miette:这似乎是现在很受欢迎的代码范围报告库。然而,在我看来,它似乎很复杂,提供的功能远超我所需要。此外,它的最低支持的Rust版本(MSRV)比我想要的更高,依赖项也更多。但,对我来说真正的决定性因素是,根据其描述,它是“为我们这些普通人而设计,我们不是编译器黑客”。鉴于我认为自己是某种编译器黑客,我并不觉得自己是它的目标群体(尽管我可能不是黑客)。 :)

无运行时依赖