Crate codemap_diagnostic
source ·Expand description
A library for formatting compiler error messages, extracted from rustc and built on the types from the codemap crate.
§Example
extern crate codemap;
extern crate codemap_diagnostic;
use codemap::CodeMap;
use codemap_diagnostic::{ Level, SpanLabel, SpanStyle, Diagnostic, ColorConfig, Emitter };
fn main() {
let code = "foo + bar";
let mut codemap = CodeMap::new();
let file_span = codemap.add_file("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]);
}
Structs§
- A diagnostic message.
- Formats and prints diagnostic messages.
- A labeled region of the code related to a Diagnostic.
Enums§
- Settings for terminal styling.
- A level representing the severity of a Diagnostic.
- Underline style for a SpanLabel.