1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2023年5月4日 |
---|
#617 在 命令行界面
28 每月下载量
86KB
1.5K SLoC
CodeMap2 Diagnostic
Rust 库,用于格式化编译器错误信息,从 rustc 中提取并基于 codemap crate 中的类型构建。
许可证
许可协议为以下之一
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确表示,否则根据 Apache-2.0 许可证定义,你提交给工作的任何贡献都将双重许可如上所述,不附加任何额外条款或条件。
lib.rs
:
用于格式化编译器错误信息的库,从 rustc 中提取并基于 codemap crate 中的类型构建。
示例
extern crate codemap2;
extern crate codemap2_diagnostic;
use codemap2::{CodeMap, DefaultFileData};
use codemap2_diagnostic::{ Level, SpanLabel, SpanStyle, Diagnostic, ColorConfig, Emitter };
fn main() {
let code = "foo + bar";
let mut codemap = CodeMap::new();
let file_span = codemap.add_file(DefaultFileData::new("test.rs".to_owned(), code.to_owned())).span;
let name_span = file_span.subspan(0, 3);
let label = SpanLabel {
span: name_span,
style: SpanStyle::Primary,
label: Some("undefined variable".to_owned())
};
let d = Diagnostic {
level: Level::Error,
message: "cannot find value `foo` in this scope".to_owned(),
code: Some("C000".to_owned()),
spans: vec![label]
};
let mut emitter = Emitter::stderr(ColorConfig::Always, Some(&codemap));
emitter.emit(&[d]);
}
依赖
~0.2–8.5MB
~48K SLoC