阿里亚德娜
一个高级编译器诊断工具。
示例
```
…
```
请参阅 [`examples/`](https://github.com/zesterer/ariadne/tree/main/examples) 以查看更多示例。
## 使用方法
对于您要报告的每个错误:
- 调用 `Report::build()` 来创建 `ReportBuilder`。
- 使用各种选项指定与错误相关的详细信息
方法,然后调用`finish`方法来获取`Report`。
- 对于每个 `Report`, 都调用 `print` 或 `eprint` 来写入报告
直接输出到 `stdout` 或 `stderr`。或者,您可以使用
`write` 用于将报告发送到任何其他 `Write` 目标(例如文件)。
## 关于
ariadne 是 chumsky 的一个姐妹项目。两者都不依赖于对方,但我同时在两者上工作,并希望认为它们的功能相辅相成。如果你正在考虑使用 ariadne 来处理编译器的输出,为什么不尝试使用 chumsky 来处理其输入呢?
- 可处理任意跨度配置的内联和多行标签
- 多文件错误
- 适用于自定义跨度和文件缓存的通用标签
- 可选择的字符集,以确保兼容性
- 带有 8 位和 24 位色彩支持的彩色标签和突出显示(感谢
yansi)
- 标签优先级和排序
- 紧凑模式,用于更小的诊断信息
- 正确处理可变宽度字符,如制表符
ColorGenerator 类型,用于为可视元素生成独特的颜色
- 众多其他选项(制表宽度、标签附着点、下划线等)
- 内置的排序/重叠启发式算法,可找到避免重叠和标签交叉的最佳方法
Cargo 特性