diff --git a/examples/elide_header.rs b/examples/elide_header.rs
index 7ea2cf04..4c46c886 100644
--- a/examples/elide_header.rs
+++ b/examples/elide_header.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
fn main() {
let source = r#"# Docstring followed by a newline
@@ -16,6 +16,6 @@ def foobar(door, bar={}):
)
.element(Level::HELP.message("Replace with `None`; initialize within function"))];
- let renderer = Renderer::styled();
+ let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/elide_header.svg b/examples/elide_header.svg
index ccec3e10..a8c42d1f 100644
--- a/examples/elide_header.svg
+++ b/examples/elide_header.svg
@@ -19,23 +19,23 @@
- |
+ ╭▸
- 1 | # Docstring followed by a newline
+ 1 │ # Docstring followed by a newline
- 2 |
+ 2 │
- 3 | def foobar(door, bar={}):
+ 3 │ def foobar(door, bar={}):
- | ^^ B006
+ │ ━━ B006
- 4 | """
+ 4 │ """
- 5 | """
+ 5 │ """
- |
+ │
- = help: Replace with `None`; initialize within function
+ ╰ help: Replace with `None`; initialize within function
diff --git a/examples/expected_type.rs b/examples/expected_type.rs
index d8ba1869..c740acb7 100644
--- a/examples/expected_type.rs
+++ b/examples/expected_type.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
fn main() {
let source = r#" annotations: vec![SourceAnnotation {
@@ -22,6 +22,6 @@ fn main() {
),
];
- let renderer = Renderer::styled();
+ let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/expected_type.svg b/examples/expected_type.svg
index 7c1b073d..b88bc22e 100644
--- a/examples/expected_type.svg
+++ b/examples/expected_type.svg
@@ -21,19 +21,19 @@
error: expected type, found `22`
- --> examples/footer.rs:29:25
+ ╭▸ examples/footer.rs:29:25
- |
+ │
- 26 | annotations: vec![SourceAnnotation {
+ 26 │ annotations: vec![SourceAnnotation {
- | ---------------- while parsing this struct
+ │ ──────────────── while parsing this struct
- ...
+ ‡
- 29 | range: <22, 25>,
+ 29 │ range: <22, 25>,
- | ^^ expected struct `annotate_snippets::snippet::Slice`, found reference
+ ╰╴ ━━ expected struct `annotate_snippets::snippet::Slice`, found reference
diff --git a/examples/footer.rs b/examples/footer.rs
index 1e208b5b..60671d45 100644
--- a/examples/footer.rs
+++ b/examples/footer.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
fn main() {
let report =
@@ -16,6 +16,6 @@ fn main() {
)),
];
- let renderer = Renderer::styled();
+ let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/footer.svg b/examples/footer.svg
index e55ee041..ade493cc 100644
--- a/examples/footer.svg
+++ b/examples/footer.svg
@@ -22,15 +22,15 @@
error[E0308]: mismatched types
- --> src/multislice.rs:13:22
+ ╭▸ src/multislice.rs:13:22
- |
+ │
- 13 | slices: vec!["A",
+ 13 │ slices: vec!["A",
- | ^^^ expected struct `annotate_snippets::snippet::Slice`, found reference
+ │ ━━━ expected struct `annotate_snippets::snippet::Slice`, found reference
- |
+ ╰╴
note: expected type: `snippet::Annotation`
diff --git a/examples/format.rs b/examples/format.rs
index d9cef1b6..cb7387e3 100644
--- a/examples/format.rs
+++ b/examples/format.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
fn main() {
let source = r#") -> Option {
@@ -42,6 +42,6 @@ fn main() {
),
];
- let renderer = Renderer::styled();
+ let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/format.svg b/examples/format.svg
index e4a4042c..2832b9cd 100644
--- a/examples/format.svg
+++ b/examples/format.svg
@@ -21,57 +21,57 @@
error[E0308]: mismatched types
- --> src/format.rs:52:5
+ ╭▸ src/format.rs:52:5
- |
+ │
- 51 | ) -> Option<String> {
+ 51 │ ) -> Option<String> {
- | -------------- expected `Option<String>` because of return type
+ │ ────────────── expected `Option<String>` because of return type
- 52 | / for ann in annotations {
+ 52 │ ┏ for ann in annotations {
- 53 | | match (ann.range.0, ann.range.1) {
+ 53 │ ┃ match (ann.range.0, ann.range.1) {
- 54 | | (None, None) => continue,
+ 54 │ ┃ (None, None) => continue,
- 55 | | (Some(start), Some(end)) if start > end_index => continue,
+ 55 │ ┃ (Some(start), Some(end)) if start > end_index => continue,
- 56 | | (Some(start), Some(end)) if start >= start_index => {
+ 56 │ ┃ (Some(start), Some(end)) if start >= start_index => {
- 57 | | let label = if let Some(ref label) = ann.label {
+ 57 │ ┃ let label = if let Some(ref label) = ann.label {
- 58 | | format!(" {}", label)
+ 58 │ ┃ format!(" {}", label)
- 59 | | } else {
+ 59 │ ┃ } else {
- 60 | | String::from("")
+ 60 │ ┃ String::from("")
- 61 | | };
+ 61 │ ┃ };
- 62 | |
+ 62 │ ┃
- 63 | | return Some(format!(
+ 63 │ ┃ return Some(format!(
- 64 | | "{}{}{}",
+ 64 │ ┃ "{}{}{}",
- 65 | | " ".repeat(start - start_index),
+ 65 │ ┃ " ".repeat(start - start_index),
- 66 | | "^".repeat(end - start),
+ 66 │ ┃ "^".repeat(end - start),
- 67 | | label
+ 67 │ ┃ label
- 68 | | ));
+ 68 │ ┃ ));
- 69 | | }
+ 69 │ ┃ }
- 70 | | _ => continue,
+ 70 │ ┃ _ => continue,
- 71 | | }
+ 71 │ ┃ }
- 72 | | }
+ 72 │ ┃ }
- | |____^ expected enum `std::option::Option`
+ ╰╴┗━━━━┛ expected enum `std::option::Option`
diff --git a/examples/highlight_message.rs b/examples/highlight_message.rs
index 3f7107cd..76dd4871 100644
--- a/examples/highlight_message.rs
+++ b/examples/highlight_message.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use anstyle::AnsiColor;
use anstyle::Effects;
use anstyle::Style;
@@ -58,6 +58,8 @@ fn main() {
),
];
- let renderer = Renderer::styled().anonymized_line_numbers(true);
+ let renderer = Renderer::styled()
+ .anonymized_line_numbers(true)
+ .decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/highlight_message.svg b/examples/highlight_message.svg
index c748a1de..7d00563f 100644
--- a/examples/highlight_message.svg
+++ b/examples/highlight_message.svg
@@ -23,39 +23,39 @@
error[E0308]: mismatched types
- --> $DIR/highlighting.rs:21:11
+ ╭▸ $DIR/highlighting.rs:21:11
- |
+ │
- LL | query(wrapped_fn);
+ LL │ query(wrapped_fn);
- | ----- ^^^^^^^^^^ one type is more general than the other
+ │ ┬──── ━━━━━━━━━━ one type is more general than the other
- | |
+ │ │
- | arguments to this function are incorrect
+ │ arguments to this function are incorrect
- |
+ │
- = note: expected fn pointer `for<'a> fn(Box<(dyn Any + Send + 'a)>) -> Pin<_>`
+ ╰ note: expected fn pointer `for<'a> fn(Box<(dyn Any + Send + 'a)>) -> Pin<_>`
found fn item `fn(Box<(dyn Any + Send + 'static)>) -> Pin<_> {wrapped_fn}`
note: function defined here
- --> $DIR/highlighting.rs:10:4
+ ╭▸ $DIR/highlighting.rs:10:4
- |
+ │
- LL | fn query(_: fn(Box<(dyn Any + Send + '_)>) -> Pin<Box<(
+ LL │ fn query(_: fn(Box<(dyn Any + Send + '_)>) -> Pin<Box<(
- | ____^^^^^_-
+ │ ┌────━━━━━─┘
- LL | | dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static
+ LL │ │ dyn Future<Output = Result<Box<(dyn Any + 'static)>, String>> + Send + 'static
- LL | | )>>) {}
+ LL │ │ )>>) {}
- | |___-
+ ╰╴└───┘
diff --git a/examples/highlight_source.rs b/examples/highlight_source.rs
index 514f6b7c..ae7b5217 100644
--- a/examples/highlight_source.rs
+++ b/examples/highlight_source.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
fn main() {
let source = r#"//@ compile-flags: -Z teach
@@ -26,6 +26,8 @@ fn main() {}
)];
- let renderer = Renderer::styled().anonymized_line_numbers(true);
+ let renderer = Renderer::styled()
+ .anonymized_line_numbers(true)
+ .decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/highlight_source.svg b/examples/highlight_source.svg
index 14014944..0d360253 100644
--- a/examples/highlight_source.svg
+++ b/examples/highlight_source.svg
@@ -21,17 +21,17 @@
error[E0010]: allocations are not allowed in constants
- --> $DIR/E0010-teach.rs:5:23
+ ╭▸ $DIR/E0010-teach.rs:5:23
- |
+ │
- LL | const CON: Vec<i32> = vec![1, 2, 3]; //~ ERROR E0010
+ LL │ const CON: Vec<i32> = vec![1, 2, 3]; //~ ERROR E0010
- | ^^^^^^^^^^^^^ allocation not allowed in constants
+ │ ━━━━━━━━━━━━━ allocation not allowed in constants
- |
+ │
- = note: The runtime heap is not yet available at compile-time, so no runtime heap allocations can be created.
+ ╰ note: The runtime heap is not yet available at compile-time, so no runtime heap allocations can be created.
diff --git a/examples/multislice.rs b/examples/multislice.rs
index 3a2e7fa0..39b776b5 100644
--- a/examples/multislice.rs
+++ b/examples/multislice.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{Annotation, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, Annotation, Group, Level, Renderer, Snippet};
fn main() {
let report = &[
@@ -17,6 +17,6 @@ fn main() {
),
];
- let renderer = Renderer::styled();
+ let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/multislice.svg b/examples/multislice.svg
index 47c98bc1..ad738b84 100644
--- a/examples/multislice.svg
+++ b/examples/multislice.svg
@@ -21,21 +21,21 @@
error: mismatched types
- --> src/format.rs
+ ╭▸ src/format.rs
- |
+ │
- 51 | Foo
+ 51 │ Foo
- |
+ │
- ::: src/display.rs:129
+ ⸬ src/display.rs:129
- |
+ │
- 129 | Faa
+ 129 │ Faa
- |
+ ╰╴
diff --git a/examples/struct_name_as_context.rs b/examples/struct_name_as_context.rs
index 0271e04b..adc6c5bf 100644
--- a/examples/struct_name_as_context.rs
+++ b/examples/struct_name_as_context.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
fn main() {
let source = r#"struct S {
field1: usize,
@@ -22,6 +22,6 @@ fn main() {
Level::HELP.message("unlike in C++, Java, and C#, functions are declared in `impl` blocks"),
)];
- let renderer = Renderer::styled();
+ let renderer = Renderer::styled().decor_style(DecorStyle::Unicode);
anstream::println!("{}", renderer.render(report));
}
diff --git a/examples/struct_name_as_context.svg b/examples/struct_name_as_context.svg
index 177fbba0..8573af31 100644
--- a/examples/struct_name_as_context.svg
+++ b/examples/struct_name_as_context.svg
@@ -21,21 +21,21 @@
error: functions are not allowed in struct definitions
- --> $DIR/struct_name_as_context.rs:6:5
+ ╭▸ $DIR/struct_name_as_context.rs:6:5
- |
+ │
- 1 | struct S {
+ 1 │ struct S {
- ...
+ ‡
- 6 | fn foo() {},
+ 6 │ fn foo() {},
- | ^^^^^^^^^^^
+ │ ━━━━━━━━━━━
- |
+ │
- = help: unlike in C++, Java, and C#, functions are declared in `impl` blocks
+ ╰ help: unlike in C++, Java, and C#, functions are declared in `impl` blocks
diff --git a/tests/color/ann_eof.term.svg b/tests/color/ann_eof.ascii.term.svg
similarity index 100%
rename from tests/color/ann_eof.term.svg
rename to tests/color/ann_eof.ascii.term.svg
diff --git a/tests/color/ann_eof.rs b/tests/color/ann_eof.rs
index 6f192b9c..2e433250 100644
--- a/tests/color/ann_eof.rs
+++ b/tests/color/ann_eof.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -12,7 +12,12 @@ fn case() {
.annotation(AnnotationKind::Primary.span(4..4).label("")),
),
];
- let expected = file!["ann_eof.term.svg"];
+
+ let expected_ascii = file!["ann_eof.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["ann_eof.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/ann_eof.unicode.term.svg b/tests/color/ann_eof.unicode.term.svg
new file mode 100644
index 00000000..bebb3acf
--- /dev/null
+++ b/tests/color/ann_eof.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/ann_insertion.term.svg b/tests/color/ann_insertion.ascii.term.svg
similarity index 100%
rename from tests/color/ann_insertion.term.svg
rename to tests/color/ann_insertion.ascii.term.svg
diff --git a/tests/color/ann_insertion.rs b/tests/color/ann_insertion.rs
index 453cdc7c..70efbc46 100644
--- a/tests/color/ann_insertion.rs
+++ b/tests/color/ann_insertion.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -12,7 +12,12 @@ fn case() {
.annotation(AnnotationKind::Primary.span(2..2).label("'d' belongs here")),
),
];
- let expected = file!["ann_insertion.term.svg"];
+
+ let expected_ascii = file!["ann_insertion.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["ann_insertion.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/ann_insertion.unicode.term.svg b/tests/color/ann_insertion.unicode.term.svg
new file mode 100644
index 00000000..70355299
--- /dev/null
+++ b/tests/color/ann_insertion.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/ann_multiline.term.svg b/tests/color/ann_multiline.ascii.term.svg
similarity index 100%
rename from tests/color/ann_multiline.term.svg
rename to tests/color/ann_multiline.ascii.term.svg
diff --git a/tests/color/ann_multiline.rs b/tests/color/ann_multiline.rs
index d855de82..1f1c8f84 100644
--- a/tests/color/ann_multiline.rs
+++ b/tests/color/ann_multiline.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -25,7 +25,12 @@ fn case() {
.label("missing fields `lineno`, `content`"),
),
)];
- let expected = file!["ann_multiline.term.svg"];
+
+ let expected_ascii = file!["ann_multiline.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["ann_multiline.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/ann_multiline.unicode.term.svg b/tests/color/ann_multiline.unicode.term.svg
new file mode 100644
index 00000000..77bf28ad
--- /dev/null
+++ b/tests/color/ann_multiline.unicode.term.svg
@@ -0,0 +1,40 @@
+
diff --git a/tests/color/ann_multiline2.term.svg b/tests/color/ann_multiline2.ascii.term.svg
similarity index 100%
rename from tests/color/ann_multiline2.term.svg
rename to tests/color/ann_multiline2.ascii.term.svg
diff --git a/tests/color/ann_multiline2.rs b/tests/color/ann_multiline2.rs
index fe1a1751..34693337 100644
--- a/tests/color/ann_multiline2.rs
+++ b/tests/color/ann_multiline2.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -25,7 +25,12 @@ to exactly one character on next line.
.label("this should not be on separate lines"),
),
)];
- let expected = file!["ann_multiline2.term.svg"];
+
+ let expected_ascii = file!["ann_multiline2.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["ann_multiline2.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/ann_multiline2.unicode.term.svg b/tests/color/ann_multiline2.unicode.term.svg
new file mode 100644
index 00000000..942c6447
--- /dev/null
+++ b/tests/color/ann_multiline2.unicode.term.svg
@@ -0,0 +1,42 @@
+
diff --git a/tests/color/ann_removed_nl.term.svg b/tests/color/ann_removed_nl.ascii.term.svg
similarity index 100%
rename from tests/color/ann_removed_nl.term.svg
rename to tests/color/ann_removed_nl.ascii.term.svg
diff --git a/tests/color/ann_removed_nl.rs b/tests/color/ann_removed_nl.rs
index ff5a717f..fddf2db0 100644
--- a/tests/color/ann_removed_nl.rs
+++ b/tests/color/ann_removed_nl.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -12,7 +12,12 @@ fn case() {
.annotation(AnnotationKind::Primary.span(4..5).label("")),
),
];
- let expected = file!["ann_removed_nl.term.svg"];
+
+ let expected_ascii = file!["ann_removed_nl.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["ann_removed_nl.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/ann_removed_nl.unicode.term.svg b/tests/color/ann_removed_nl.unicode.term.svg
new file mode 100644
index 00000000..bebb3acf
--- /dev/null
+++ b/tests/color/ann_removed_nl.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/ensure_emoji_highlight_width.term.svg b/tests/color/ensure_emoji_highlight_width.ascii.term.svg
similarity index 100%
rename from tests/color/ensure_emoji_highlight_width.term.svg
rename to tests/color/ensure_emoji_highlight_width.ascii.term.svg
diff --git a/tests/color/ensure_emoji_highlight_width.rs b/tests/color/ensure_emoji_highlight_width.rs
index c3662f1e..93057ca0 100644
--- a/tests/color/ensure_emoji_highlight_width.rs
+++ b/tests/color/ensure_emoji_highlight_width.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -14,7 +14,12 @@ fn case() {
.line_start(7)
.annotation(AnnotationKind::Primary.span(0..35).label(""))
)];
- let expected = file!["ensure_emoji_highlight_width.term.svg"];
+
+ let expected_ascii = file!["ensure_emoji_highlight_width.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["ensure_emoji_highlight_width.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/ensure_emoji_highlight_width.unicode.term.svg b/tests/color/ensure_emoji_highlight_width.unicode.term.svg
new file mode 100644
index 00000000..4c3bcae5
--- /dev/null
+++ b/tests/color/ensure_emoji_highlight_width.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/first_snippet_is_primary.term.svg b/tests/color/first_snippet_is_primary.ascii.term.svg
similarity index 100%
rename from tests/color/first_snippet_is_primary.term.svg
rename to tests/color/first_snippet_is_primary.ascii.term.svg
diff --git a/tests/color/first_snippet_is_primary.rs b/tests/color/first_snippet_is_primary.rs
index 537ec871..0ee144a6 100644
--- a/tests/color/first_snippet_is_primary.rs
+++ b/tests/color/first_snippet_is_primary.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -42,7 +42,12 @@ fn case() {
.message("expected reference `&[u8]`\n found reference `&'static str`"),
),
];
- let expected = file!["first_snippet_is_primary.term.svg"];
+
+ let expected_ascii = file!["first_snippet_is_primary.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["first_snippet_is_primary.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/first_snippet_is_primary.unicode.term.svg b/tests/color/first_snippet_is_primary.unicode.term.svg
new file mode 100644
index 00000000..e846bb9a
--- /dev/null
+++ b/tests/color/first_snippet_is_primary.unicode.term.svg
@@ -0,0 +1,54 @@
+
diff --git a/tests/color/fold_ann_multiline.term.svg b/tests/color/fold_ann_multiline.ascii.term.svg
similarity index 100%
rename from tests/color/fold_ann_multiline.term.svg
rename to tests/color/fold_ann_multiline.ascii.term.svg
diff --git a/tests/color/fold_ann_multiline.rs b/tests/color/fold_ann_multiline.rs
index 9ce7dd70..7fba4f92 100644
--- a/tests/color/fold_ann_multiline.rs
+++ b/tests/color/fold_ann_multiline.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -43,7 +43,12 @@ fn case() {
),
),
];
- let expected = file!["fold_ann_multiline.term.svg"];
+
+ let expected_ascii = file!["fold_ann_multiline.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["fold_ann_multiline.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/fold_ann_multiline.unicode.term.svg b/tests/color/fold_ann_multiline.unicode.term.svg
new file mode 100644
index 00000000..92dea608
--- /dev/null
+++ b/tests/color/fold_ann_multiline.unicode.term.svg
@@ -0,0 +1,48 @@
+
diff --git a/tests/color/fold_bad_origin_line.term.svg b/tests/color/fold_bad_origin_line.ascii.term.svg
similarity index 100%
rename from tests/color/fold_bad_origin_line.term.svg
rename to tests/color/fold_bad_origin_line.ascii.term.svg
diff --git a/tests/color/fold_bad_origin_line.rs b/tests/color/fold_bad_origin_line.rs
index de2f255e..e101cfe9 100644
--- a/tests/color/fold_bad_origin_line.rs
+++ b/tests/color/fold_bad_origin_line.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -15,7 +15,12 @@ invalid syntax
.line_start(1)
.annotation(AnnotationKind::Context.span(2..16).label("error here")),
)];
- let expected = file!["fold_bad_origin_line.term.svg"];
+
+ let expected_ascii = file!["fold_bad_origin_line.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["fold_bad_origin_line.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/fold_bad_origin_line.unicode.term.svg b/tests/color/fold_bad_origin_line.unicode.term.svg
new file mode 100644
index 00000000..d4a8be56
--- /dev/null
+++ b/tests/color/fold_bad_origin_line.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/fold_leading.term.svg b/tests/color/fold_leading.ascii.term.svg
similarity index 100%
rename from tests/color/fold_leading.term.svg
rename to tests/color/fold_leading.ascii.term.svg
diff --git a/tests/color/fold_leading.rs b/tests/color/fold_leading.rs
index dffa05d6..493a3e48 100644
--- a/tests/color/fold_leading.rs
+++ b/tests/color/fold_leading.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -28,7 +28,12 @@ workspace = 20
.line_start(1)
.annotation(AnnotationKind::Primary.span(132..134).label("")),
)];
- let expected = file!["fold_leading.term.svg"];
+
+ let expected_ascii = file!["fold_leading.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["fold_leading.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/fold_leading.unicode.term.svg b/tests/color/fold_leading.unicode.term.svg
new file mode 100644
index 00000000..aa1d865f
--- /dev/null
+++ b/tests/color/fold_leading.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/fold_trailing.term.svg b/tests/color/fold_trailing.ascii.term.svg
similarity index 100%
rename from tests/color/fold_trailing.term.svg
rename to tests/color/fold_trailing.ascii.term.svg
diff --git a/tests/color/fold_trailing.rs b/tests/color/fold_trailing.rs
index 408f00ab..f59a0b2f 100644
--- a/tests/color/fold_trailing.rs
+++ b/tests/color/fold_trailing.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -27,7 +27,12 @@ edition = "2021"
.line_start(1)
.annotation(AnnotationKind::Primary.span(8..10).label("")),
)];
- let expected = file!["fold_trailing.term.svg"];
+
+ let expected_ascii = file!["fold_trailing.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["fold_trailing.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/fold_trailing.unicode.term.svg b/tests/color/fold_trailing.unicode.term.svg
new file mode 100644
index 00000000..a4453380
--- /dev/null
+++ b/tests/color/fold_trailing.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/issue_9.term.svg b/tests/color/issue_9.ascii.term.svg
similarity index 100%
rename from tests/color/issue_9.term.svg
rename to tests/color/issue_9.ascii.term.svg
diff --git a/tests/color/issue_9.rs b/tests/color/issue_9.rs
index 9acb1693..2ca54a6d 100644
--- a/tests/color/issue_9.rs
+++ b/tests/color/issue_9.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -22,7 +22,12 @@ x;
.annotation(AnnotationKind::Primary.span(31..32).label("value used here after move"))
)
];
- let expected = file!["issue_9.term.svg"];
+
+ let expected_ascii = file!["issue_9.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["issue_9.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/issue_9.unicode.term.svg b/tests/color/issue_9.unicode.term.svg
new file mode 100644
index 00000000..b870c160
--- /dev/null
+++ b/tests/color/issue_9.unicode.term.svg
@@ -0,0 +1,46 @@
+
diff --git a/tests/color/multiline_removal_suggestion.term.svg b/tests/color/multiline_removal_suggestion.ascii.term.svg
similarity index 100%
rename from tests/color/multiline_removal_suggestion.term.svg
rename to tests/color/multiline_removal_suggestion.ascii.term.svg
diff --git a/tests/color/multiline_removal_suggestion.rs b/tests/color/multiline_removal_suggestion.rs
index ede35b4d..851de358 100644
--- a/tests/color/multiline_removal_suggestion.rs
+++ b/tests/color/multiline_removal_suggestion.rs
@@ -1,4 +1,6 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Origin, Patch, Renderer, Snippet};
+use annotate_snippets::{
+ renderer::DecorStyle, AnnotationKind, Group, Level, Origin, Patch, Renderer, Snippet,
+};
use snapbox::{assert_data_eq, file};
@@ -99,7 +101,12 @@ fn main() {}
.patch(Patch::new(708..768, "")),
),
];
- let expected = file!["multiline_removal_suggestion.term.svg"];
+
+ let expected_ascii = file!["multiline_removal_suggestion.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["multiline_removal_suggestion.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/multiline_removal_suggestion.unicode.term.svg b/tests/color/multiline_removal_suggestion.unicode.term.svg
new file mode 100644
index 00000000..52360f4c
--- /dev/null
+++ b/tests/color/multiline_removal_suggestion.unicode.term.svg
@@ -0,0 +1,68 @@
+
diff --git a/tests/color/multiple_annotations.term.svg b/tests/color/multiple_annotations.ascii.term.svg
similarity index 100%
rename from tests/color/multiple_annotations.term.svg
rename to tests/color/multiple_annotations.ascii.term.svg
diff --git a/tests/color/multiple_annotations.rs b/tests/color/multiple_annotations.rs
index 23f0ac9e..bdf0c998 100644
--- a/tests/color/multiple_annotations.rs
+++ b/tests/color/multiple_annotations.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -35,7 +35,12 @@ fn case() {
.label("Referenced again here"),
),
)];
- let expected = file!["multiple_annotations.term.svg"];
+
+ let expected_ascii = file!["multiple_annotations.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["multiple_annotations.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/multiple_annotations.unicode.term.svg b/tests/color/multiple_annotations.unicode.term.svg
new file mode 100644
index 00000000..5c06464e
--- /dev/null
+++ b/tests/color/multiple_annotations.unicode.term.svg
@@ -0,0 +1,54 @@
+
diff --git a/tests/color/primary_title_second_group.term.svg b/tests/color/primary_title_second_group.ascii.term.svg
similarity index 100%
rename from tests/color/primary_title_second_group.term.svg
rename to tests/color/primary_title_second_group.ascii.term.svg
diff --git a/tests/color/primary_title_second_group.rs b/tests/color/primary_title_second_group.rs
index dfab58d0..7d30f953 100644
--- a/tests/color/primary_title_second_group.rs
+++ b/tests/color/primary_title_second_group.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -19,7 +19,11 @@ fn case() {
)),
];
- let expected = file!["primary_title_second_group.term.svg"];
+ let expected_ascii = file!["primary_title_second_group.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(report), expected);
+ assert_data_eq!(renderer.render(report), expected_ascii);
+
+ let expected_unicode = file!["primary_title_second_group.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(report), expected_unicode);
}
diff --git a/tests/color/primary_title_second_group.unicode.term.svg b/tests/color/primary_title_second_group.unicode.term.svg
new file mode 100644
index 00000000..3b8b9be3
--- /dev/null
+++ b/tests/color/primary_title_second_group.unicode.term.svg
@@ -0,0 +1,41 @@
+
diff --git a/tests/color/simple.term.svg b/tests/color/simple.ascii.term.svg
similarity index 100%
rename from tests/color/simple.term.svg
rename to tests/color/simple.ascii.term.svg
diff --git a/tests/color/simple.rs b/tests/color/simple.rs
index 9e0002b8..655b6c76 100644
--- a/tests/color/simple.rs
+++ b/tests/color/simple.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -27,7 +27,12 @@ fn case() {
.label("expected one of `.`, `;`, `?`, or an operator here"),
),
)];
- let expected = file!["simple.term.svg"];
+
+ let expected_ascii = file!["simple.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["simple.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/simple.unicode.term.svg b/tests/color/simple.unicode.term.svg
new file mode 100644
index 00000000..e3457760
--- /dev/null
+++ b/tests/color/simple.unicode.term.svg
@@ -0,0 +1,42 @@
+
diff --git a/tests/color/strip_line.term.svg b/tests/color/strip_line.ascii.term.svg
similarity index 100%
rename from tests/color/strip_line.term.svg
rename to tests/color/strip_line.ascii.term.svg
diff --git a/tests/color/strip_line.rs b/tests/color/strip_line.rs
index 1718d2d6..626be039 100644
--- a/tests/color/strip_line.rs
+++ b/tests/color/strip_line.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -18,7 +18,12 @@ fn case() {
),
),
];
- let expected = file!["strip_line.term.svg"];
+
+ let expected_ascii = file!["strip_line.ascii.term.svg": TermSvg];
let renderer = Renderer::styled().anonymized_line_numbers(true);
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["strip_line.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/strip_line.unicode.term.svg b/tests/color/strip_line.unicode.term.svg
new file mode 100644
index 00000000..2d536cf3
--- /dev/null
+++ b/tests/color/strip_line.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/strip_line_char.term.svg b/tests/color/strip_line_char.ascii.term.svg
similarity index 100%
rename from tests/color/strip_line_char.term.svg
rename to tests/color/strip_line_char.ascii.term.svg
diff --git a/tests/color/strip_line_char.rs b/tests/color/strip_line_char.rs
index b0c87767..08c61513 100644
--- a/tests/color/strip_line_char.rs
+++ b/tests/color/strip_line_char.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -18,7 +18,12 @@ fn case() {
),
),
];
- let expected = file!["strip_line_char.term.svg"];
+
+ let expected_ascii = file!["strip_line_char.ascii.term.svg": TermSvg];
let renderer = Renderer::styled().anonymized_line_numbers(true);
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["strip_line_char.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/strip_line_char.unicode.term.svg b/tests/color/strip_line_char.unicode.term.svg
new file mode 100644
index 00000000..3519f037
--- /dev/null
+++ b/tests/color/strip_line_char.unicode.term.svg
@@ -0,0 +1,34 @@
+
diff --git a/tests/color/strip_line_non_ws.term.svg b/tests/color/strip_line_non_ws.ascii.term.svg
similarity index 100%
rename from tests/color/strip_line_non_ws.term.svg
rename to tests/color/strip_line_non_ws.ascii.term.svg
diff --git a/tests/color/strip_line_non_ws.rs b/tests/color/strip_line_non_ws.rs
index b9600bbc..a8d6aa79 100644
--- a/tests/color/strip_line_non_ws.rs
+++ b/tests/color/strip_line_non_ws.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use snapbox::{assert_data_eq, file};
@@ -24,7 +24,12 @@ fn case() {
),
),
];
- let expected = file!["strip_line_non_ws.term.svg"];
+
+ let expected_ascii = file!["strip_line_non_ws.ascii.term.svg": TermSvg];
let renderer = Renderer::styled().anonymized_line_numbers(true);
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["strip_line_non_ws.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/strip_line_non_ws.unicode.term.svg b/tests/color/strip_line_non_ws.unicode.term.svg
new file mode 100644
index 00000000..977c6519
--- /dev/null
+++ b/tests/color/strip_line_non_ws.unicode.term.svg
@@ -0,0 +1,38 @@
+
diff --git a/tests/color/styled_title.term.svg b/tests/color/styled_title.ascii.term.svg
similarity index 100%
rename from tests/color/styled_title.term.svg
rename to tests/color/styled_title.ascii.term.svg
diff --git a/tests/color/styled_title.rs b/tests/color/styled_title.rs
index caf554ec..ea28aae2 100644
--- a/tests/color/styled_title.rs
+++ b/tests/color/styled_title.rs
@@ -1,4 +1,4 @@
-use annotate_snippets::{AnnotationKind, Group, Level, Renderer, Snippet};
+use annotate_snippets::{renderer::DecorStyle, AnnotationKind, Group, Level, Renderer, Snippet};
use anstyle::{AnsiColor, Effects, Style};
use snapbox::{assert_data_eq, file};
@@ -37,7 +37,12 @@ use c::cnb_runtime;
.annotation(AnnotationKind::Primary.span(31..32).label(label_4)),
),
];
- let expected = file!["styled_title.term.svg"];
+
+ let expected_ascii = file!["styled_title.ascii.term.svg": TermSvg];
let renderer = Renderer::styled();
- assert_data_eq!(renderer.render(input), expected);
+ assert_data_eq!(renderer.render(input), expected_ascii);
+
+ let expected_unicode = file!["styled_title.unicode.term.svg": TermSvg];
+ let renderer = renderer.decor_style(DecorStyle::Unicode);
+ assert_data_eq!(renderer.render(input), expected_unicode);
}
diff --git a/tests/color/styled_title.unicode.term.svg b/tests/color/styled_title.unicode.term.svg
new file mode 100644
index 00000000..d2ebd9a7
--- /dev/null
+++ b/tests/color/styled_title.unicode.term.svg
@@ -0,0 +1,56 @@
+