preservim / vim-indent-guides

A Vim plugin for visually displaying indent levels in code
MIT License
2.62k stars 162 forks source link

`listchars` (`lcs`) Colors Overriden when using block tabs #156

Closed thekpaul closed 1 year ago

thekpaul commented 1 year ago

Hi, thanks for maintaining this awesome plugin. I have one question regarding lcs. I'm using Neovim, so this problem may not be reproducible in Vim, but any help would be very appreciated :)

When I use block tabs (not spaces) with the colors on, characters set by listchars are colored as regular text, as below: image which is different from the whitespace color.

if the plugin is disabled (no colors), characters are greyed out as expected by setting hl-Whitespace color options (which apparently is not the same as SpecialKey, but I've set it as the same value manually, so it should display the same). image

Is there a way to ensure that the color remains greyed out when using the plugin?

thekpaul commented 1 year ago

Update: Colors are definitely being overriden, as alphabet characters and symbol characters are colored differently, seen below: image (4-space tabs are shown here as I-->, where I is the alphabet and --> are the symbols)

thekpaul commented 1 year ago

Update: Apparently, exe hl IndentGuides... in both indent_guides#basic_highlight_colors and indent_guides#gui_highlight_colors are expected to declare both bg and fg colors in IndentGuides[Odd/Even], but only bg colors appear as declared, while fg values are omitted: image Manually setting guifg or ctermfg removes this issue, but I don't understand why this might not be working - shouldn't it be a default behaviour?