KristofferC / Crayons.jl

Colored and styled strings for terminals.
Other
150 stars 14 forks source link

respect the :color option #47

Open Roger-luo opened 3 years ago

Roger-luo commented 3 years ago

currently the show method overloaded in this package doesn't respect the :color option in julia IO, which as a result will print extra ASCII chars in Pluto.

KristofferC commented 3 years ago

Yes, it is difficult though because people want to be able to e.g. interpolate "crayons" and then you don't have an IO.

I think we need to do a breaking release to clear these things up.

DilumAluthge commented 3 years ago

I think that this is the cause of https://github.com/JuliaData/DataFrames.jl/issues/2846.

In that particular issue, they are testing output by using sprint to get the output into a string, and then checking that the output string contains the ASCII escape sequences for the colors. So in that use case, they always want the ASCII escape sequences to be included in the string, even if Julia was e.g. started with --color=no.

cc: @bkamins

Roger-luo commented 3 years ago

I guess there should be a new string type to solve the string interpolation with color problem? the new string type stores the colored string as list of String with meta info about the color (format etc.) on it?

Roger-luo commented 2 years ago

Now LazyString PR is merged, maybe should consider that as a solution to this issue? Basically, when someone wants to interpolating the Crayons, always suggest to use LazyString instead of normal ones, so we always have the context of IO when actually printing the Crayons, What do people think?