Expand description
Format diagnostic reports, including highlighting snippets of text
§Example
use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Level, Renderer, Snippet};
fn main() {
let source = r#" annotations: vec![SourceAnnotation {
label: "expected struct `annotate_snippets::snippet::Slice`, found reference"
,
range: <22, 25>,"#;
let report =
&[Level::ERROR
.primary_title("expected type, found `22`")
.element(
Snippet::source(source)
.line_start(26)
.path("examples/footer.rs")
.annotation(AnnotationKind::Primary.span(193..195).label(
"expected struct `annotate_snippets::snippet::Slice`, found reference",
))
.annotation(
AnnotationKind::Context
.span(34..50)
.label("while parsing this struct"),
),
)];
let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}§Visual overview
§Primary group
error: cannot construct `Box<_, _>` with struct literal syntax due to private fieldsAnnotation on a Snippet
╭▸ $DIR/multi-suggestion.rs:17:13
│
17 │ let _ = Box {};
│ ━━━
│ ╰ note: private fields `0` and `1` that were not provided§Secondary group: suggested fix
Title (proposed solution)
help: you might have meant to use an associated function to build this type ╭╴
21 - let _ = Box {};
21 + let _ = Box::new(_);
├╴ ├╴
17 - let _ = Box {};
17 + let _ = Box::new_uninit();
├╴etc for Options 3 and 4
╰ and 12 other candidates§Secondary group: alternative suggested fix
Title (proposed solution)
help: consider using the `Default` trait ╭╴
17 - let _ = Box {};
17 + let _ = <Box as std::default::Default>::default();
╰╴§Cargo features
-
simd- Speeds up folding -
testing-colors- Makes Renderer::styled colors OS independent, which allows for easier testing when testing colored output. It should be added as a feature in[dev-dependencies], which can be done with the following command:
cargo add annotate-snippets --dev --feature testing-colorsModules§
Structs§
- Annotation
- Highlight and describe a span of text within a
Snippet - Group
- A
Titlewith supporting context within aReport - Level
- Severity level for
Titles andMessages - Message
- A text
Elementin aGroup - Option
Cow - Origin
- A source location
Elementin aGroup - Padding
- A whitespace
Elementin aGroup - Patch
- Suggested edit to the
Snippet - Renderer
- The Renderer for a
Report - Snippet
- A source view
Elementin aGroup - Title
- A title that introduces a
Group, describing the main point
Enums§
- Annotation
Kind - The type of
Annotationbeing applied to aSnippet - Element
- A section of content within a
Group
Functions§
- normalize_
untrusted_ str - Normalize the string to avoid any unicode control characters.
Type Aliases§
- Report
- A diagnostic message and any associated context to help users understand it