BenchmarkTools.jl icon indicating copy to clipboard operation
BenchmarkTools.jl copied to clipboard

Provide entry point for color customization

Open Arkoniak opened this issue 2 years ago • 1 comments

BenchmarkTools uses hardcoded colors for generating output and unfortunately color choice is not always suitable for all users for various reasons.

I propose to use the following approach instead of colors hardcoding:

# define somewhere at the beginning

const COLOR = Ref((; foo = :red, bar = :green))

# and later in the code, when color is needed
printstyled("what you need to print", COLOR[].foo)

This simple change does not provide full-fledged color theme switching by itself (this probably should be implemented https://github.com/JuliaLang/julia/issues/41435), but it provides an entry point for all future color theme related stuff. I.e. all user level convenience functions would just modify this variable one way or another. And anyway this proposal allows color customization right here and now (maybe slightly cumbersome) unlike the current situation.

Implementing this feature looks like a good beginner PR, doesn't require large modifications of the code base and it solves color issues.

Arkoniak avatar Aug 05 '21 08:08 Arkoniak

Do you want to give implementing this a go?

vchuravy avatar Aug 13 '21 08:08 vchuravy