tomtom / quickfixsigns_vim

Mark quickfix & location list items with signs
http://www.vim.org/scripts/script.php?script_id=2584
GNU General Public License v3.0
131 stars 13 forks source link

QuickfixsignsToggle / QuickfixsignsEnable might not setup g:quickfixsigns_register again #47

Closed blueyed closed 10 years ago

blueyed commented 10 years ago

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=QFSMark' QuickFixSigns AssertUniqueSigns: duplicate bufnr=5: line=74 id=5322 name=QFSMark. QuickFixSigns AssertUniqueSigns: duplicate bufnr=5: line=74 id=5320 name=QFSMark.

g:quickfixsigns_register gets filled then.

Calling QuickfixsignsDisable does not remove all signs then.