Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Bug report: region_highlight converts `fg=default` to `none`, which is not the same

Hi there, Zsh devs!

I am using Zsh 5.8 with `zsh-syntax-highlighting`. I want my paths to be blue, but I want the slashes in each path to be my terminal's default text color. I've configured `zsh-syntax-highlighting` to do so and it correctly puts, for example,

region_highlight=( '0 2 fg=10' '3 16 fg=4' '3 4 fg=default' '9 10 fg=default' )

where `3 16` is the path I'm trying to `cd` to and  `3 4` plus `9 10` are the positions of slashes in the path.

However, after this assignment occurs, when I `print -r "${(q+)region_highlight[@]}"`, I get as output

'0 2 fg=10' '3 16 fg=4' '3 4 none' '9 10 none'

and when the ZLE highlights the line, the slashes are rendered in the same blue color as the rest of the path. If I use any other `fg` value than `default`, then the slashes are colored correctly.

This seems like incorrect behavior to me, on two accounts:

 1. It seems incorrect to convert `fg=default` to `none`. From reading the [documentation](http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting), `none` is not supposed to be the same as `fg=default`.

 2. It also seems incorrect to me that `none` effectively does nothing at all. According to the documentation, `none` should mean that

    > No highlighting is applied to the given context.

    Instead, `none` just appears to do nothing at all, which seems useless to me; if I don't want to change the highlighting of that part of the line, then I can just not add a spec for it.

Do you agree and could someone be so kind as to fix this? :)



Messages sorted by: Reverse Date, Date, Thread, Author