TaDaa / vimade

An eye friendly plugin that fades your inactive buffers and preserves your syntax highlighting!
MIT License
486 stars 8 forks source link

Support neovim's multiple sign columns #56

Closed gzbd closed 3 years ago

gzbd commented 3 years ago

Hi,

Some time ago I've reported #54 with signcolumn setting in neovim that I'm using. This PR fixes the main issue, which is displaying doubled signs and one of them is not dimmed - really burns my eyes often. The solution is not perfect, but IMO is good enough.

vimade-multiple-sign-columns-fix

Neovim has a special signcolumn setting value auto:x where x is the number of displayed signs in one line. Current implementation of dimming the signs is to add copy of existing signs with higher priority to be on top of covered sign. When this setting was on, the original sign was not covered, by the extra sign. Instead the two signs were normally displayed...

The solution is to fill the sign column with empty signs (fg, and bg same as the signcolumn bg). The number of inserted empty signs is the number possible sings minus number of original signs in line, ie. The signcolumn setting is auto:3, at line x editor displays 1 sign. The number of empty signs is 3-1=2. So, in total we add 1 sign to replace original and two empty to fill the sign column. This way the original sign is covered.

Note: this solution is not perfect, but fixes what this plugin should do, it doesn't burn eyes of a user. As we create empty signs they will always fill the signcolumn, and in some cases it will "extend" the signcolumn when there is no signs to display.

This commit is combination of following squashed commits:

gzbd commented 3 years ago

Closing, the 35a1d9790544edfdc874b4c2ef103827a2f01c81 commit in master fixed the problem.