Skip to content

Commit 85bd083

Browse files
committed
switch colored to owo-colors
1 parent ed37e39 commit 85bd083

File tree

4 files changed

+46
-101
lines changed

4 files changed

+46
-101
lines changed

Cargo.lock

Lines changed: 26 additions & 86 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ doctest = false # but no doc tests
1313

1414
[dependencies]
1515
rustc_version = "0.4"
16-
colored = "2"
16+
owo-colors = "3.5"
1717
lazy_static = "1.4.0"
1818
serde = { version = "1.0", features = ["derive"] }
1919
serde_json = "1.0"
@@ -29,6 +29,7 @@ prettydiff = { version = "0.7", default_features = false }
2929
annotate-snippets = { version = "0.11.2" }
3030
levenshtein = "1.0.5"
3131
spanned = "0.2.1"
32+
supports-color = "3.0"
3233

3334
[dependencies.regex]
3435
version = "1.5.5"

src/diff.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use colored::*;
1+
use owo_colors::OwoColorize;
22
use prettydiff::{basic::DiffOp, basic::DiffOp::*, diff_lines, diff_words};
33

44
/// How many lines of context are displayed around the actual diffs
@@ -52,10 +52,12 @@ fn row(row: DiffOp<'_, &str>) {
5252
}
5353

5454
fn print_line_diff(l: &str, r: &str) {
55+
use supports_color::Stream;
56+
5557
let diff = diff_words(l, r);
5658
let diff = diff.diff();
5759
if has_both_insertions_and_deletions(&diff)
58-
|| !colored::control::SHOULD_COLORIZE.should_colorize()
60+
|| !supports_color::on_cached(Stream::Stdout).map_or(false, |support| support.has_basic)
5961
{
6062
// The line both adds and removes chars, print both lines, but highlight their differences instead of
6163
// drawing the entire line in red/green.

src/status_emitter.rs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
33
use annotate_snippets::{Renderer, Snippet};
44
use bstr::ByteSlice;
5-
use colored::Colorize;
65
use crossbeam_channel::{Sender, TryRecvError};
76
use indicatif::{MultiProgress, ProgressBar, ProgressDrawTarget, ProgressStyle};
7+
use owo_colors::OwoColorize;
88
use spanned::Span;
99

1010
use crate::{
@@ -314,13 +314,12 @@ impl TestStatus for TextTest {
314314
self.text.sender.send(Msg::Inc).unwrap();
315315
self.text.sender.send(Msg::Pop(self.msg(), None)).unwrap();
316316
} 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-
};
322317
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+
};
324323
if ProgressDrawTarget::stdout().is_hidden() {
325324
println!("{old_msg} {msg}");
326325
std::io::stdout().flush().unwrap();
@@ -714,6 +713,8 @@ fn create_error(
714713
lines: &[(&[(&str, Option<Span>)], NonZeroUsize)],
715714
file: &Path,
716715
) {
716+
use supports_color::Stream;
717+
717718
let source = std::fs::read_to_string(file).unwrap();
718719
let source: Vec<_> = source.split_inclusive('\n').collect();
719720
let file = file.display().to_string();
@@ -753,11 +754,12 @@ fn create_error(
753754
}));
754755
msg = msg.snippet(snippet);
755756
}
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+
};
761763
println!("{}", renderer.render(msg));
762764
}
763765

0 commit comments

Comments
 (0)