|
2 | 2 |
|
3 | 3 | use annotate_snippets::{Annotation, AnnotationType, Renderer, Slice, Snippet, SourceAnnotation};
|
4 | 4 | use bstr::ByteSlice;
|
5 |
| -use colored::Colorize; |
6 | 5 | use crossbeam_channel::{Sender, TryRecvError};
|
7 | 6 | use indicatif::{MultiProgress, ProgressBar, ProgressDrawTarget, ProgressStyle};
|
| 7 | +use owo_colors::OwoColorize; |
8 | 8 | use spanned::Span;
|
9 | 9 |
|
10 | 10 | use crate::{
|
@@ -213,13 +213,12 @@ impl TestStatus for TextTest {
|
213 | 213 | self.text.sender.send(Msg::Inc).unwrap();
|
214 | 214 | self.text.sender.send(Msg::Pop(self.msg(), None)).unwrap();
|
215 | 215 | } else {
|
216 |
| - let result = match result { |
217 |
| - Ok(TestOk::Ok) => "ok".green(), |
218 |
| - Err(Errored { .. }) => "FAILED".bright_red().bold(), |
219 |
| - Ok(TestOk::Ignored) => "ignored (in-test comment)".yellow(), |
220 |
| - }; |
221 | 216 | let old_msg = self.msg();
|
222 |
| - let msg = format!("... {result}"); |
| 217 | + let msg = match result { |
| 218 | + Ok(TestOk::Ok) => format!("... {}", "ok".green()), |
| 219 | + Err(Errored { .. }) => format!("... {}", "FAILED".bright_red().bold()), |
| 220 | + Ok(TestOk::Ignored) => format!("... {}", "ignored (in-test comment)".yellow()), |
| 221 | + }; |
223 | 222 | if ProgressDrawTarget::stdout().is_hidden() {
|
224 | 223 | println!("{old_msg} {msg}");
|
225 | 224 | std::io::stdout().flush().unwrap();
|
@@ -592,6 +591,8 @@ fn create_error(
|
592 | 591 | lines: &[(&[(&str, Option<Span>)], NonZeroUsize)],
|
593 | 592 | file: &Path,
|
594 | 593 | ) {
|
| 594 | + use supports_color::Stream; |
| 595 | + |
595 | 596 | let source = std::fs::read_to_string(file).unwrap();
|
596 | 597 | let source: Vec<_> = source.split_inclusive('\n').collect();
|
597 | 598 | let file = file.display().to_string();
|
@@ -639,11 +640,12 @@ fn create_error(
|
639 | 640 | .collect(),
|
640 | 641 | footer: vec![],
|
641 | 642 | };
|
642 |
| - let renderer = if colored::control::SHOULD_COLORIZE.should_colorize() { |
643 |
| - Renderer::styled() |
644 |
| - } else { |
645 |
| - Renderer::plain() |
646 |
| - }; |
| 643 | + let renderer = |
| 644 | + if supports_color::on_cached(Stream::Stdout).map_or(false, |support| support.has_basic) { |
| 645 | + Renderer::styled() |
| 646 | + } else { |
| 647 | + Renderer::plain() |
| 648 | + }; |
647 | 649 | println!("{}", renderer.render(msg));
|
648 | 650 | }
|
649 | 651 |
|
|
0 commit comments