tomtom/quickfixsigns_vim

QuickfixsignsToggle / QuickfixsignsEnable might not setup g:quickfixsigns_register again

blueyed opened this issue · 0 comments

QuickfixsignsToggle uses g:quickfixsigns_register to determine if QuickfixsignsEnable or QuickfixsignsDisable should be called.

But QuickfixsignsEnable might fail to setup g:quickfixsigns_register properly: it stays empty.

From a quick glance at the code, g:quickfixsigns_register seems to get set only in s:UpdateLineNumbers (but that loops over g:quickfixsigns_register itself) and s:PlaceSign (called via QuickfixsignsSet).

It seems like when the list has not changed, QuickfixsignsEnable won't really change the "enabled state" (because g:quickfixsigns_register gets not setup properly).

I can manually trigger it by placing some mark. When doing this, I see the following assertion errors:

QuickFixSigns AssertUniqueSigns: duplicate bufnr=5: line=1 id=5328 name=QFS_Mark_'
QuickFixSigns AssertUniqueSigns: duplicate bufnr=5: line=74 id=5322 name=QFS_Mark_.
QuickFixSigns AssertUniqueSigns: duplicate bufnr=5: line=74 id=5320 name=QFS_Mark_.

g:quickfixsigns_register gets filled then.

Calling QuickfixsignsDisable does not remove all signs then.