|
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