|
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::{ |
@@ -305,13 +305,12 @@ impl TestStatus for TextTest { |
305 | 305 | self.text.sender.send(Msg::Inc).unwrap(); |
306 | 306 | self.text.sender.send(Msg::Pop(self.msg(), None)).unwrap(); |
307 | 307 | } else { |
308 | | - let result = match result { |
309 | | - Ok(TestOk::Ok) => "ok".green(), |
310 | | - Err(Errored { .. }) => "FAILED".bright_red().bold(), |
311 | | - Ok(TestOk::Ignored) => "ignored (in-test comment)".yellow(), |
312 | | - }; |
313 | 308 | let old_msg = self.msg(); |
314 | | - let msg = format!("... {result}"); |
| 309 | + let msg = match result { |
| 310 | + Ok(TestOk::Ok) => format!("... {}", "ok".green()), |
| 311 | + Err(Errored { .. }) => format!("... {}", "FAILED".bright_red().bold()), |
| 312 | + Ok(TestOk::Ignored) => format!("... {}", "ignored (in-test comment)".yellow()), |
| 313 | + }; |
315 | 314 | if ProgressDrawTarget::stdout().is_hidden() { |
316 | 315 | println!("{old_msg} {msg}"); |
317 | 316 | std::io::stdout().flush().unwrap(); |
@@ -705,6 +704,8 @@ fn create_error( |
705 | 704 | lines: &[(&[(&str, Option<Span>)], NonZeroUsize)], |
706 | 705 | file: &Path, |
707 | 706 | ) { |
| 707 | + use supports_color::Stream; |
| 708 | + |
708 | 709 | let source = std::fs::read_to_string(file).unwrap(); |
709 | 710 | let source: Vec<_> = source.split_inclusive('\n').collect(); |
710 | 711 | let file = file.display().to_string(); |
@@ -744,11 +745,12 @@ fn create_error( |
744 | 745 | })); |
745 | 746 | msg = msg.snippet(snippet); |
746 | 747 | } |
747 | | - let renderer = if colored::control::SHOULD_COLORIZE.should_colorize() { |
748 | | - Renderer::styled() |
749 | | - } else { |
750 | | - Renderer::plain() |
751 | | - }; |
| 748 | + let renderer = |
| 749 | + if supports_color::on_cached(Stream::Stdout).map_or(false, |support| support.has_basic) { |
| 750 | + Renderer::styled() |
| 751 | + } else { |
| 752 | + Renderer::plain() |
| 753 | + }; |
752 | 754 | println!("{}", renderer.render(msg)); |
753 | 755 | } |
754 | 756 |
|
|
0 commit comments