On Friday, 8 June 2018 at 13:51:05 UTC, gdelazzari wrote:
On Friday, 8 June 2018 at 13:38:59 UTC, Steven Schveighoffer
wrote:
Looks excellent! Two thumbs up from me. Is it cross-platform?
Note on some platforms (ahem, Macos) the background is white,
so this should be correctly colored for that possibility.
-Steve
At the moment it's "probably" Linux-only, but that's because I
only wanted a proof of concept and I worked on it on my Linux
installation. I imported this library/Dub package
https://github.com/yamadapc/d-colorize and just used it. Which,
by the way, it's no-good at the moment since I saw that Dub
doesn't use Dub packages itself - probably because, otherwise,
you don't have a way to easily compile it without Dub itself, I
guess :P so I'll need to either write my custom color
outputting code within Dub's source or just import that library.
Of course making it cross-platform is a mandatory thing to me.
Windows also needs some specific stuff to output colors, as you
can see in the library I linked, so there are definitely some
things to do to support all the platforms. I may even take a
look at how DMD itself outputs colored output, I guess it will
be nice to keeps things consistent.
As for MacOS having a different background... I don't really
own a Mac nor I have ever used one before, so I don't even know
how tools usually output their colored text on it. At the
moment it just sets the foreground color to
green/yellow/blue/whatever, without changing the background, if
that was your concern. If you meant that yellow-on-white is not
readable... well... I guess so. Maybe two different color
palettes should be used? IDK, as I said I never used a Mac
before so I don't really know how other tools handle this,
maybe if some Mac user could help on this, it would be great.
Thanks for the appreciation by the way!
I love it! I have very little experience with terminal colours,
but as far as colourizing text on POSIX its fairly easy. You just
need to emit the right ANSI escape sequences [0]. This is what
the colorize-d library does.. For Windows before Windows 10,
things are more messy. You need to use `handle`s, to get the
current state and then correctly set the colours. The real hard
part here is adjusting the colour scheme based on the terminal
background colour.
[0]: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors