|
2 | 2 |
|
3 | 3 | use annotate_snippets::{Renderer, Snippet}; |
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::{ |
@@ -314,13 +314,12 @@ impl TestStatus for TextTest { |
314 | 314 | self.text.sender.send(Msg::Inc).unwrap(); |
315 | 315 | self.text.sender.send(Msg::Pop(self.msg(), None)).unwrap(); |
316 | 316 | } else { |
317 | | - let result = match result { |
318 | | - Ok(TestOk::Ok) => "ok".green(), |
319 | | - Err(Errored { .. }) => "FAILED".bright_red().bold(), |
320 | | - Ok(TestOk::Ignored) => "ignored (in-test comment)".yellow(), |
321 | | - }; |
322 | 317 | let old_msg = self.msg(); |
323 | | - let msg = format!("... {result}"); |
| 318 | + let msg = match result { |
| 319 | + Ok(TestOk::Ok) => format!("... {}", "ok".green()), |
| 320 | + Err(Errored { .. }) => format!("... {}", "FAILED".bright_red().bold()), |
| 321 | + Ok(TestOk::Ignored) => format!("... {}", "ignored (in-test comment)".yellow()), |
| 322 | + }; |
324 | 323 | if ProgressDrawTarget::stdout().is_hidden() { |
325 | 324 | println!("{old_msg} {msg}"); |
326 | 325 | std::io::stdout().flush().unwrap(); |
@@ -714,6 +713,8 @@ fn create_error( |
714 | 713 | lines: &[(&[(&str, Option<Span>)], NonZeroUsize)], |
715 | 714 | file: &Path, |
716 | 715 | ) { |
| 716 | + use supports_color::Stream; |
| 717 | + |
717 | 718 | let source = std::fs::read_to_string(file).unwrap(); |
718 | 719 | let source: Vec<_> = source.split_inclusive('\n').collect(); |
719 | 720 | let file = file.display().to_string(); |
@@ -753,11 +754,12 @@ fn create_error( |
753 | 754 | })); |
754 | 755 | msg = msg.snippet(snippet); |
755 | 756 | } |
756 | | - let renderer = if colored::control::SHOULD_COLORIZE.should_colorize() { |
757 | | - Renderer::styled() |
758 | | - } else { |
759 | | - Renderer::plain() |
760 | | - }; |
| 757 | + let renderer = |
| 758 | + if supports_color::on_cached(Stream::Stdout).map_or(false, |support| support.has_basic) { |
| 759 | + Renderer::styled() |
| 760 | + } else { |
| 761 | + Renderer::plain() |
| 762 | + }; |
761 | 763 | println!("{}", renderer.render(msg)); |
762 | 764 | } |
763 | 765 |
|
|
0 commit comments