DMD now has colorized syntax highlighting in error messages

Adam D. Ruppe via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue May 16 07:17:41 PDT 2017


On Tuesday, 16 May 2017 at 14:04:34 UTC, Walter Bright wrote:
> With all the complaints about color, note that dmd already has 
> been using color in error messages for years with no complaints

My complaint isn't about the presence of color* but rather about 
the OVERUSE of it.

The old way of coloring the message header helps you quickly find 
the beginning of an error among output spam. It stands out. But 
now, with color being all over the place, you can't visually scan 
for it anymore. It loses its special meaning.

Similarly, what I want to see in the future is highlighting of 
specific parts of code where the error applies.

Error: No overload for foo(int), candidates are:
   foo(string);
   foo(int, string);

In my perfect world, `Error` is colored, like it is now, you can 
scan for it and find that. Then, the first `string` is also 
highlighted as a mismatch of the overload, and the `int` in the 
candidate signature is also highlighted as a match of the 
overload.

Then, your eyes can just look for the color and realize which 
candidate is the best match and immediately see what you're 
missing.



With syntax highlighting though, string and int will be 
highlighted as types or keywords... which is irrelevant to the 
issue of matching the correct overload. It stands out, but means 
nothing. And if everything is colored, yikes, then nothing stands 
out since you can't even eye scan it at all.



So again it is NOT color that bothers me. It is OVERUSE of color 
for stuff that isn't important to read the message which dilutes 
the meaning of color. It isn't special anymore.



* I did hate it for a while though because the contrast was poor, 
but I fixed that with some hack to my terminal emulator code to 
give it a superior adaptive palette. Perhaps tilix's author will 
want to do this too: mine has a different yellow when printed on 
white than on black, different blue, different teal. The 
application outputs the same sequence but my thing is aware of 
the background and adapts. Even if the application tries to 
output unreadable stuff explicitly, my terminal emulator won't 
allow it.

Big, big win on my eyes.


More information about the Digitalmars-d-announce mailing list