Skip to content

Commit 88f515c

Browse files
committed
refactor: Move to new API
1 parent 0343dc7 commit 88f515c

38 files changed

+1606
-976
lines changed

benches/bench.rs

+28-24
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use annotate_snippets::{Level, Renderer, Snippet};
1+
use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
22

33
#[divan::bench]
44
fn simple() -> String {
@@ -24,20 +24,22 @@ fn simple() -> String {
2424
_ => continue,
2525
}
2626
}"#;
27-
let message = Level::Error.title("mismatched types").id("E0308").snippet(
28-
Snippet::source(source)
29-
.line_start(51)
30-
.origin("src/format.rs")
31-
.annotation(
32-
Level::Warning
33-
.span(5..19)
34-
.label("expected `Option<String>` because of return type"),
35-
)
36-
.annotation(
37-
Level::Error
38-
.span(26..724)
39-
.label("expected enum `std::option::Option`"),
40-
),
27+
let message = Level::Error.message("mismatched types").id("E0308").group(
28+
Group::new().element(
29+
Snippet::source(source)
30+
.line_start(51)
31+
.origin("src/format.rs")
32+
.annotation(
33+
AnnotationKind::Context
34+
.span(5..19)
35+
.label("expected `Option<String>` because of return type"),
36+
)
37+
.annotation(
38+
AnnotationKind::Primary
39+
.span(26..724)
40+
.label("expected enum `std::option::Option`"),
41+
),
42+
),
4143
);
4244

4345
let renderer = Renderer::plain();
@@ -67,15 +69,17 @@ fn fold(bencher: divan::Bencher<'_, '_>, context: usize) {
6769
(input, span)
6870
})
6971
.bench_values(|(input, span)| {
70-
let message = Level::Error.title("mismatched types").id("E0308").snippet(
71-
Snippet::source(&input)
72-
.fold(true)
73-
.origin("src/format.rs")
74-
.annotation(
75-
Level::Warning
76-
.span(span)
77-
.label("expected `Option<String>` because of return type"),
78-
),
72+
let message = Level::Error.message("mismatched types").id("E0308").group(
73+
Group::new().element(
74+
Snippet::source(&input)
75+
.fold(true)
76+
.origin("src/format.rs")
77+
.annotation(
78+
AnnotationKind::Context
79+
.span(span)
80+
.label("expected `Option<String>` because of return type"),
81+
),
82+
),
7983
);
8084

8185
let renderer = Renderer::plain();

examples/expected_type.rs

+18-13
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
1-
use annotate_snippets::{Level, Renderer, Snippet};
1+
use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
22

33
fn main() {
44
let source = r#" annotations: vec![SourceAnnotation {
55
label: "expected struct `annotate_snippets::snippet::Slice`, found reference"
66
,
77
range: <22, 25>,"#;
8-
let message = Level::Error.title("expected type, found `22`").snippet(
9-
Snippet::source(source)
10-
.line_start(26)
11-
.origin("examples/footer.rs")
12-
.fold(true)
13-
.annotation(
14-
Level::Error
15-
.span(193..195)
16-
.label("expected struct `annotate_snippets::snippet::Slice`, found reference"),
17-
)
18-
.annotation(Level::Info.span(34..50).label("while parsing this struct")),
19-
);
8+
let message =
9+
Level::Error.message("expected type, found `22`").group(
10+
Group::new().element(
11+
Snippet::source(source)
12+
.line_start(26)
13+
.origin("examples/footer.rs")
14+
.fold(true)
15+
.annotation(AnnotationKind::Primary.span(193..195).label(
16+
"expected struct `annotate_snippets::snippet::Slice`, found reference",
17+
))
18+
.annotation(
19+
AnnotationKind::Context
20+
.span(34..50)
21+
.label("while parsing this struct"),
22+
),
23+
),
24+
);
2025

2126
let renderer = Renderer::styled();
2227
anstream::println!("{}", renderer.render(message));

examples/expected_type.svg

+1-1
Loading

examples/footer.rs

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
1-
use annotate_snippets::{Level, Renderer, Snippet};
1+
use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
22

33
fn main() {
4-
let message =
5-
Level::Error
6-
.title("mismatched types")
7-
.id("E0308")
8-
.snippet(
4+
let message = Level::Error
5+
.message("mismatched types")
6+
.id("E0308")
7+
.group(
8+
Group::new().element(
99
Snippet::source(" slices: vec![\"A\",")
1010
.line_start(13)
1111
.origin("src/multislice.rs")
12-
.annotation(Level::Error.span(21..24).label(
12+
.annotation(AnnotationKind::Primary.span(21..24).label(
1313
"expected struct `annotate_snippets::snippet::Slice`, found reference",
1414
)),
15-
)
16-
.footer(Level::Note.title(
17-
"expected type: `snippet::Annotation`\n found type: `__&__snippet::Annotation`",
18-
));
15+
),
16+
)
17+
.group(Group::new().element(Level::Note.title(
18+
"expected type: `snippet::Annotation`\n found type: `__&__snippet::Annotation`",
19+
)));
1920

2021
let renderer = Renderer::styled();
2122
anstream::println!("{}", renderer.render(message));

examples/footer.svg

+7-4
Loading

examples/format.rs

+17-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use annotate_snippets::{Level, Renderer, Snippet};
1+
use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
22

33
fn main() {
44
let source = r#") -> Option<String> {
@@ -23,20 +23,22 @@ fn main() {
2323
_ => continue,
2424
}
2525
}"#;
26-
let message = Level::Error.title("mismatched types").id("E0308").snippet(
27-
Snippet::source(source)
28-
.line_start(51)
29-
.origin("src/format.rs")
30-
.annotation(
31-
Level::Warning
32-
.span(5..19)
33-
.label("expected `Option<String>` because of return type"),
34-
)
35-
.annotation(
36-
Level::Error
37-
.span(26..724)
38-
.label("expected enum `std::option::Option`"),
39-
),
26+
let message = Level::Error.message("mismatched types").id("E0308").group(
27+
Group::new().element(
28+
Snippet::source(source)
29+
.line_start(51)
30+
.origin("src/format.rs")
31+
.annotation(
32+
AnnotationKind::Context
33+
.span(5..19)
34+
.label("expected `Option<String>` because of return type"),
35+
)
36+
.annotation(
37+
AnnotationKind::Primary
38+
.span(26..724)
39+
.label("expected enum `std::option::Option`"),
40+
),
41+
),
4042
);
4143

4244
let renderer = Renderer::styled();

examples/format.svg

+2-3
Loading

examples/multislice.rs

+14-10
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1-
use annotate_snippets::{Level, Renderer, Snippet};
1+
use annotate_snippets::{Annotation, Group, Level, Renderer, Snippet};
22

33
fn main() {
44
let message = Level::Error
5-
.title("mismatched types")
6-
.snippet(
7-
Snippet::source("Foo")
8-
.line_start(51)
9-
.origin("src/format.rs"),
5+
.message("mismatched types")
6+
.group(
7+
Group::new().element(
8+
Snippet::<Annotation<'_>>::source("Foo")
9+
.line_start(51)
10+
.origin("src/format.rs"),
11+
),
1012
)
11-
.snippet(
12-
Snippet::source("Faa")
13-
.line_start(129)
14-
.origin("src/display.rs"),
13+
.group(
14+
Group::new().element(
15+
Snippet::<Annotation<'_>>::source("Faa")
16+
.line_start(129)
17+
.origin("src/display.rs"),
18+
),
1519
);
1620

1721
let renderer = Renderer::styled();

examples/multislice.svg

+1-1
Loading

0 commit comments

Comments
 (0)