|
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