Open mainrs opened 3 years ago
Is it only color-eyre that is doing this? I'm curious to see if you use other cli tools that colorize their output, do their color codes show up verbatim or does it still work? And if so are they outputting ANSI escape codes or are they using windows APIs?
I don't have access to Windows Terminal Preview atm so it might take me a while to get around to reproducing this myself.
Crates depending on termcolor
:
Crates depending on colored
:
Crates depending on owo-colors
:
Looks like it's only color-eyre
. I made sure that I've called color_eyre::install()
:)
Windows Terminal: https://github.com/microsoft/terminal/releases/tag/v1.7.572.0
wow, other crates depending on owo-colors
worked??? What version of owo-colors
are they depending on?
color-eyre: ^1.2.1 hex-rgb: ^1.1.3
If not installed with the --locked
flag they both would resolve to the newest minor which would be 1.3.0, which makes this even weirder... 1.3.0 added support for tty
checking. It's gated behind a feature flag though.
Edit: I did more testing. I have a crate that hard-encodes ANSI colored strings into it:
pub const INFO_SYMBOL: Emoji = Emoji::new("\u{1b}[34mℹ\u{1b}[0m", "\u{1b}[34mi\u{1b}[0m");
And these fail as well:
$ gh labels -r https://github.com/SirWindfield/terminal-spinners-rs update --purge
←[34mℹ←[0m Purging all 24 labels...
←[34mℹ←[0m Repository has 0 labels, creating 24 and updating 0...
I am so clueless... I have no clue why one CLI (hex-rgb
) works but the other library (color-eyre
) does not... For the sake of completeness I also tested on the newest stable release of WT (Version: 1.6.10571.0), same behavior.
I'm running into this issue as well, except cross-compiled on Linux, running through Wine:
cargo run --target x86_64-pc-windows-gnu --example=usage
# or if you don't use a binfmt
cargo build --target x86_64-pc-windows-gnu --example=usage
wine ./target/x86_64-pc-windows-gnu/debug/examples/usage.exe
Interestingly, the tracing event log is perfectly colored, and bold and italics always work. Only color codes in the error message and span trace are messed up.
Version: https://github.com/yaahc/color-eyre/commit/4a7b4d6988c6b0da5e04e29c9d6e10595b5dc302
Any temporary fix to this, such as conditionally disabling color on windows? Ive looked but not found a way to disable color for windows, unless i pull in regular eyre just for said windows build.
Not sure why this happens as I always thought Windows terminal supports ANSI escape codes. Here is an example output:
Windows Terminal Preview Version: 1.7.572.0 rustc 1.50.0 (cb75ad5db 2021-02-10) color-eyre 0.5.10 eyre 0.6.5