tomtom / quickfixsigns_vim Goto Github PK
View Code? Open in Web Editor NEWMark quickfix & location list items with signs
Home Page: http://www.vim.org/scripts/script.php?script_id=2584
License: GNU General Public License v3.0
Mark quickfix & location list items with signs
Home Page: http://www.vim.org/scripts/script.php?script_id=2584
License: GNU General Public License v3.0
Thank you for a useful plugin!
Is it possible to disable the plugin on a specific buffer type or file type?
The plugin adds a 2 character wide gutter, but as I have it only configured to show git and quickfix signs, all signs appear in the first column, and the second is unused. I'd like to turn it off to save screen space, but I cannot find a way to do it in the documentation or source.
Please upload a pathogen compatible .zip instead or additionally to the .vba here:
http://www.vim.org/scripts/script.php?script_id=2584
When using ":e http://www.google.com" to open a file (read-only) via http, the following error gets displayed via quickfixsigns:
Error detected while processing function QuickfixsignsSet..<SNR>62_GetList..quickfixsigns#vcsdiff#GetList:
line 17:
E344: Can't find directory "http:" in cdpath
E472: Command failed
I just wanted to let you know, because it's likely trivial to fix. In case any
additional information would be required, I'd be glad to provide it.
I get this error when compiling a standard program from a non-gui vim:
Error detected while processing function QuickfixsignsSet..56_PlaceSign..56_SetItemId..56_SignExistsAt..56_BufferSigns:
line 1:
E121: Undefined variable: signss
Error detected while processing function QuickfixsignsSet:
line 53:
E171: Missing :endif
Any ideas?
Hi,
I recently wanted a way to tell which lines were over my column width and I found this http://stackoverflow.com/questions/1919028/how-to-show-vertical-line-to-wrap-the-line-in-vim
nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
if !exists('w:longlinehl')
let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
echo "Long lines highlighted"
else
call matchdelete(w:longlinehl)
unl w:longlinehl
echo "Long lines unhighlighted"
endif
endfunction
Would it be possible to use it with quickfixsigns to show a *
on lines that are over your column width?
p.s. thank you for this amazing plugin!
Get a lot of non-fatal but annoying errors when using quickfixsigns together with fugitive.
E.g. :Gcommit opens a buffer (named 'index') for editing the commit message, which triggers
function! quickfixsigns#vcsdiff#GetList(filename)
quickfixsigns#vcsdiff#GuessType() ## evaluates to 'git'
...
let dir = fnamemodify(a:filename, ':h') #### evaluates to '.git'
...
let dir0 = expand('%:p:h') #### evaluates to '.git'
exec 'cd' fnameescape(dir) #### CRAP
i.e. buffer has no directory path (dir0), so lts of cdpath error messages ensue.
The 'quickfix' is to add the following:
let dir0 = expand('%:p:h')
if dir0 == '.git'
return []
endif
PS thanks for the plugin. vv useful.
Adrian
I've noticed a strange behaviour of the signs that indicate changes relative to the vcs state (i.e. the +/-/=
markers). When I start vim and load a file that has some uncommitted changes the signs are correct, but the more I keep editing the file (and writing it) the less accurate the signs become: added lines don't get a +
sign, other signs are shown on the wrong line etc. Quitting Vim and loading the file again fixes this, but it's a bit annoying having no reliable signs while editing.
VIM:
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Mar 25 2013 19:54:52)
Included patches: 1-875
QuickFixSigns Version: master
.vimrc QuickFixSigns config:
let g:quickfixsigns_events = ['CursorHold', 'CursorHoldI']
Issue:
all files except help are working as expected, but whenever I'm trying to run :help something I get:
Error detected while processing function QuickfixsignsSet:
line 59:
E712: Argument of get() must be a List or Dictionary
Error detected while processing function QuickfixsignsSet..<SNR>73_UpdateSigns..<SNR>73_PlaceSign:
line 9:
E121: Undefined variable: lnum
E15: Invalid expression: item.lnum > 0
Error detected while processing function QuickfixsignsSet:
line 63:
E171: Missing :endif
To reproduce:
:help tags
I've tried to remove my config shown above, but that didn't help.
Rolling back to previous version (8e607f3) solves the problem.
I noticed that this plugin creates a temparay directory under /tmp each time vim starts, but I can't locate the exact code which does this, so why it is necessary to create such directory and where is the code that does this? Can it be configured to other place, e.g. I personally setup /tmp/vim-$(id -u) for vim temporay files, it would be great if it could be used.
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.
I tried to use it after solved #72, however, it still reproduces following error:
% vi ~/.vimrc
Error detected while processing function <SNR>52_DefineSign:
line 6:
E239: Invalid sign text: ║E
Press ENTER or type command to continue
Then, I added let g:quickfixsigns_sign_may_use_double = 0 and it is prevented. However, If I set this parameter, WARNING sign can be changed '╠'
. Currently, I just applied following patch:
% git diff --no-prefix
diff --git plugin/quickfixsigns.vim plugin/quickfixsigns.vim
index 8475598..6446100 100755
--- plugin/quickfixsigns.vim
+++ plugin/quickfixsigns.vim
@@ -295,8 +295,8 @@ endf
call s:DefineSign('QFS_CURSOR', '-', 'Question', 'cursor')
call s:DefineSign('QFS_DUMMY', '.', 'NonText', '')
-call s:DefineSign('QFS_QFL', &enc ==? 'utf-8' ? '╠' : '*', 'WarningMsg', 'qfl')
-call s:DefineSign('QFS_LOC', &enc ==? 'utf-8' ? '├' : '>', 'Special', 'loc')
+call s:DefineSign('QFS_QFL', (g:quickfixsigns_sign_may_use_double && &enc ==? 'utf-8' ? '╠' : '*'),'WarningMsg', 'qfl')
+call s:DefineSign('QFS_LOC', (g:quickfixsigns_sign_may_use_double && &enc ==? 'utf-8' ? '├' : '>'), 'Special', 'loc')
for s:char in split(g:quickfixsigns_list_types, '\zs')
call s:DefineSign('QFS_QFL_'. s:char, (g:quickfixsigns_sign_may_use_double && &enc ==? 'utf-8' ? '║' : '*') . s:char, 'WarningMsg', 'qfl_'. s:char)
Hi,
thanks again for a great plugin.
Question: If you just want to clear the current markers until you perform some action that will change the quickfix buffer (grep, make, etc.), what is the way (if any) to do so?
Thanks!
-Christoffer
With the following signs for the same line, it would be nice to get the background of the "VCS ADD" sign:
line=159 id=5345 name=QFS_Mark_.
line=159 id=5343 name=QFS_Mark_'
line=159 id=5340 name=QFS_VCS_CHANGE
Currently only the .
sign is visible, which has no background and therefore no indication about this line being changed (with regard to the vcsdiff
module).
To indicate that this line was added, it might be nice to have a sign there that merges QFS_Mark_.
and QFS_VCS_CHANGE
maybe, i.e. using the text
from QFS_Mark_.
with the texthl
from QFS_VCS_CHANGE
?!
Alternatively, it might be good to define/configure the order of signs, so that the vcs
related ones would be placed after the more generic marks?!
the plugin probably runs hg.exe to determine the changes. This takes about a second. If I disable it with QuickfixsignsDisable, the switching is fast again.
Configuration: GVim 7.3, Windows 7
When using Fugitive in conjunction with quickfixsigns I'm seeing the following error print out for every line in the file when running :Glog
Quickfixsigns PlaceSign: Invalid lnum: {'lnum': 0, 'bufnr': 2, 'col': 0, 'valid': 1, 'vcol': 0, 'nr': -1, 'type': '', 'pattern': '', 'text': 'Commit message here.'}
@rmunn tracked down the error and reported it on my dot_vim repository. Here's what he said could fix the problem:
Possible fixes might involve patching quickfixsigns not to complain when lnum = 0 -- the following patch to quickfixsigns seems to work:
diff --git a/plugin/quickfixsigns.vim b/plugin/quickfixsigns.vim
index 9215b34..79f384e 100755
--- a/plugin/quickfixsigns.vim
+++ b/plugin/quickfixsigns.vim
@@ -614,9 +614,9 @@ function! s:PlaceSign(class, sign, list) "{{{3
endif
endif
else
- echohl WarningMsg
- echom "Quickfixsigns PlaceSign: Invalid lnum:" string(item)
- echohl NONE
+ "echohl WarningMsg
+ "echom "Quickfixsigns PlaceSign: Invalid lnum:" string(item)
+ "echohl NONE
endif
endfor
finally
In change 8e607f3 you added the FocusGained event to trigger the update of the of the vcs diff signs. Unfortunately this causes an infinite loop on windows as running an external command will cause vim to loose focus for a moment.
I have created an issue at here: fugitive issue
Could you please add such feature?
Echo quickfix/location entries description in command line when cursor point to it.
I have both Nerdtree and Tagbar plugins intalled, the strange thing is that the sign column is showed in the Nerdtree plugin window but not in Tagbar plugin window. How can I disable the sign column in the Nerdtree plugin window?
I have just wondered why no vcsdiff signs were displayed in one buffer, and found out about g:quickfixsigns_max.
I think it would be reasonable to have a higher value for the vcsdiff class by default and/or have an option to configure this per class.
Also, with debugging enabled, a message should get displayed if signs are not being placed at all.
It might also be better to display the maximum number of signs instead of none at all when the maximum value is reached.
Just like the title. those +,-,= signs in numberline does not automatically refresh after execute fugitive script's commands: :Gwrite and :Gcommit. They will disappear until I execute :w.
Hi @tomtom . Is this repo maintained? if not, I'll file a PR to mark it as unmaintained.
Thanks!
I have profiled Vim and QuickfixsignsSet showed up at the top of total time.
This is somehow expected, but could be improved probably.
(I have thought about limiting the number of autocommands that quickfixsigns hooks into (I have removed InsertEnter lately already), and map it to be manually invoked more easily.)
FUNCTIONS SORTED ON TOTAL TIME
count total (s) self (s) function
1 214.691464 ProfileStart()
2301 191.327777 4.268072 QuickfixsignsSet()
2297 78.658742 29.771446 <SNR>139_UpdateLineNumbers()
3051 57.010167 0.096809 <SNR>139_UpdateSigns()
5493 45.500201 0.395611 <SNR>139_GetList()
34019 41.921944 9.328961 QuickfixsignsListBufferSigns()
3051 40.971002 39.554442 <SNR>139_PlaceSign()
12324 38.826146 3.417537 airline#extensions#eclim#get_warnings()
12324 35.407916 11.619772 eclim#display#signs#GetExisting()
2046 35.288865 2.569651 <SNR>139_GetQFList()
4092 32.798225 32.798089 QuickfixsignsUnique()
522201 29.097198 <SNR>139_ProcessSign()
2874 27.687551 1.663351 youcompleteme#Complete()
1437 26.024200 7.721748 <SNR>256_CompletionsForQuery()
251 24.106949 23.851175 <SNR>256_OnBufferVisit()
323739 23.788144 <SNR>322_ParseSign()
5633 21.483068 <SNR>139_ClearSigns()
5488 20.365708 5.619774 <SNR>139_ClearBuffer()
1926 17.931941 1.434201 <SNR>321_AutoUpdate()
14979 16.186684 1.890888 airline#check_mode()
FUNCTIONS SORTED ON SELF TIME
count total (s) self (s) function
1 214.691464 ProfileStart()
3051 40.971002 39.554442 <SNR>139_PlaceSign()
4092 32.798225 32.798089 QuickfixsignsUnique()
2297 78.658742 29.771446 <SNR>139_UpdateLineNumbers()
522201 29.097198 <SNR>139_ProcessSign()
251 24.106949 23.851175 <SNR>256_OnBufferVisit()
323739 23.788144 <SNR>322_ParseSign()
5633 21.483068 <SNR>139_ClearSigns()
10 14.818848 14.808311 phpcomplete#CompletePHP()
12324 35.407916 11.619772 eclim#display#signs#GetExisting()
34019 41.921944 9.328961 QuickfixsignsListBufferSigns()
2 8.459045 7.954233 tinykeymap#Call()
1437 26.024200 7.721748 <SNR>256_CompletionsForQuery()
7606 7.287279 <SNR>29_Highlight_Matching_Pair()
331262 6.789181 <SNR>183_MruSorter()
5488 20.365708 5.619774 <SNR>139_ClearBuffer()
80396 4.800586 airline#highlighter#exec()
2301 191.327777 4.268072 QuickfixsignsSet()
76784 4.199009 <SNR>247_get_syn()
6 5.326818 4.150049 <SNR>58_CommandTShowFileFinder()
FUNCTION QuickfixsignsSet()
Called 2301 times
Total time: 191.327777
Self time: 4.268072
count total (s) self (s)
" TLogVAR a:event, a:000
2301 0.035355 if exists("b:noquickfixsigns") && b:noquickfixsigns
return
endif
2301 1.265363 0.045378 let bufsignclasses = s:ListValues()
" TLogVAR bufsignclasses
2301 0.020525 if empty(bufsignclasses)
return
endif
" TLogVAR a:event, a:000
2301 0.027200 let filename = a:0 >= 2 ? a:2 : expand('%:p')
" TLogVAR a:event, filename, bufname('%')
2301 0.160028 if fnamemodify(filename, ':t') =~ g:quickfixsigns_blacklist_buffer
4 0.000006 return
endif
2297 0.030495 if !exists('b:quickfixsigns_last_line')
39 0.000162 let b:quickfixsigns_last_line = 0
39 0.000039 endif
2297 0.921311 let bufnr = bufnr(filename)
2297 0.030793 let anyway = empty(a:event)
" TLogVAR bufnr, anyway, a:event
2297 78.743457 0.084715 call s:UpdateLineNumbers()
13782 0.036108 for [class, def] in bufsignclasses
" TLogVAR class, def
11485 0.016887 if anyway
let set = 1
elseif index(get(def, 'event', ['BufEnter']), a:event) != -1
8545 0.064863 let set = !has_key(def, 'test') || eval(def.test)
8545 0.007741 else
2940 0.005492 let set = 0
2940 0.002381 endif
11485 0.036915 if a:0 >= 1 && !empty(a:1)
let select = index(a:1, class) != -1
else
11485 0.021334 let select = 1
11485 0.009042 endif
11485 0.019543 if set && select
" TLogVAR class, set, select
6981 0.025490 let t_d = get(def, 'timeout', 0)
6981 0.020582 let t_l = localtime()
6981 0.080999 let t_s = string(def)
6981 0.032411 if !exists('b:quickfixsigns_last_run')
39 0.000144 let b:quickfixsigns_last_run = {}
39 0.000035 endif
" TLogVAR t_s, t_d, t_l
6981 0.043258 if anyway || (t_d == 0) || (t_l - get(b:quickfixsigns_last_run, t_s, 0) >= t_d)
5488 0.010332 if g:quickfixsigns_debug
call quickfixsigns#AssertNoObsoleteBuffers(g:quickfixsigns_register)
endif
5488 0.029674 let b:quickfixsigns_last_run[t_s] = t_l
5488 46.336360 0.895443 let list = s:GetList(def, filename)
" TLogVAR len(list)
" TLogVAR list
" TLogVAR class, 'scope == buffer'
5488 0.262119 0.072753 let scope_test = s:GetScopeTest(class, bufnr, '')
5488 0.016247 if !empty(scope_test)
" echom "DBG" scope_test
" echom "DBG" string(list)
3443 0.079393 call filter(list, scope_test)
3443 0.003935 endif
" TLogVAR list
5488 0.027498 let maxsigns = get(def, 'maxsigns', g:quickfixsigns_max)
5488 0.024419 if !empty(list) && len(list) <= maxsigns
3051 57.039302 0.029135 call s:UpdateSigns(class, def, bufnr, list)
3051 0.015206 if has('balloon_eval') && g:quickfixsigns_balloon
3051 0.015022 if exists('g:loaded_tlib') && g:loaded_tlib >= 39 " ignore dependency
3051 0.142567 0.025391 call tlib#balloon#Register('QuickfixsignsBalloon()')
3051 0.009448 elseif !exists('b:quickfixsigns_balloon') && empty(&balloonexpr)
let b:quickfixsigns_ballooneval = &ballooneval
let b:quickfixsigns_balloonexpr = &balloonexpr
setlocal ballooneval balloonexpr=QuickfixsignsBalloon()
let b:quickfixsigns_balloon = 1
endif
3051 0.002581 endif
3051 0.002307 else
2437 0.007457 if !empty(list) && g:quickfixsigns_debug
echohl WarningMsg
echom 'QuickFixSigns DEBUG: not displaying' len(list) class 'signs (max' maxsigns .'; see :h g:quickfixsigns_max).'
echohl NONE
endif
2437 4.444947 0.021595 call s:ClearBuffer(class, def.sign, bufnr, [])
2437 0.002319 endif
5488 0.006581 endif
6981 0.005059 endif
11485 0.013055 endfor
2297 0.012752 let b:quickfixsigns_last_line = line('.')
In my .vimrc, following configuration exists:
As a result, following error occurred:
Error detected while processing function <SNR>48_DefineSign:
line 6:
E239: Invalid sign text: ║E
Though 'set ambiwidth=double' is comment-out now, hope to use both configuration :) Could you check it?
Installation instructions point to vimtlib.
In https://github.com/tomtom/quickfixsigns_vim/blob/master/plugin/quickfixsigns.vim#L241-244 the following code is being used:
let s:signss = s:Redir('silent sign list')
let g:quickfixsigns_signs = split(s:signss, '\n')
call filter(g:quickfixsigns_signs, 'v:val =~ ''^sign QFS_''')
call map(g:quickfixsigns_signs, 'matchstr(v:val, ''^sign \zsQFS_\w\+'')')
I cannot see how silent sign list
is meant to output anything (given the :silent
prefix, which is also added in s:Redir
again).
The code might have been used to help with re-sourcing the plugin?!
I think it would be useful to have the number of deleted lines displayed, instead of just the marker.
Is it possible? Right now both type of entries in quickfix share the same sign.
P.S. vim-cuteErrorMarker plugin can do it
ERROR:
Error detected while processing function QuickfixsignsSet..<SNR>151_UpdateSigns..<SNR>151_Place
Sign:
line 22:
E155: Unknown sign: QFS_Mark_'
Error detected while processing function QuickfixsignsSet:
line 57:
E171: Missing :endif
I have tested some aspects, and finally find the problem is at here, but this config is copy from VimOrganizer.
au! BufRead,BufWrite,BufWritePost,BufNewFile *.org
au BufEnter *.org call org#SetOrgFileType()
TEST CASE:
dd
):Gwrite
(writes the current file to the index)quickfixsigns will place a -1
sign, although there is no (non-cached) difference.
A second :Gwrite
will remove the sign.
The doautocmd
code from fugitive is here: https://github.com/tpope/vim-fugitive/blob/master/plugin/fugitive.vim#L2211-L2215
When using :Gcommit
from fugitive, I would like to reset the cache(s) for all VCS signs.
How would that get achieved?
If a colorscheme as a definition for the highlight name defined in the autoloader, quickfixsigns overwrites them when it is autoloaded. I'm assuming it happens here
Sometimes I am getting the following error a few seconds after saving a buffer (probably when CursorHold is triggered):
DBG sign unplace 5280 buffer=0
Error detected while processing function QuickfixsignsSet..74_ClearBuffer:
line 8:
E158: Invalid buffer name:
Press ENTER or type command to continue
(I have uncommented the DBG line here)
Line 8 is:
exec 'sign unplace '. def.id .' buffer='. def.bufnr
There is only 1 buffer currently, and it gets handled afterwards:
DBG sign unplace 5276 buffer=1
This might be related to using the checksyntax plugin (just a guess), since the current buffer is a .php file and that plugin might create some temporary buffer/quickfix window shortly.
Let me know if I can provide any more information - I'll let the session open for now.
It seems becd72f23#L303 tlib_vim is only needed for balloon support in graphical version, so, it is better to be clear in README that this dependency is optional for cli users.
I downloaded https://nodeload.github.com/tomtom/quickfixsigns_vim/zip/master and added it to rtp like this: set rtp+=C:\ProgramFiles\Vim_plugin_quickfixsigns
Unfortunately I do not see any signs about the changes in the files, although they are in a Mercurial project.
The -U0
with git-diff
(to have no context lines) causes the hunk to be off / not aligned as well as without -U0
(where 3 is the default). Using -U1
already fixes this.
This typically happens when a block of text is added, where only e.g. the function name / title is adjusted: with -U0
the diff will not start at the new block, but before already.
It looks like the context is not only used for display in git-diff, but also has an impact on the detection:
xecfg.ctxlen
is set according to -U
: https://github.com/git/git/blob/05ec6e13aaf33b6a647e1321203a770e697eea9a/diff.c#L2525-L2528trim_common_tail
is called for 0-context, and if --function-context
is not used: https://github.com/git/git/blob/05ec6e13aaf33b6a647e1321203a770e697eea9a/xdiff-interface.c#L134-L135git version 2.13.1.
Since using --function-context
adds extra processing, I suggest to use -U1
instead of -U0
.
When opening a directory during startup, e.g. vi pentadactyl
, I am getting these errors:
Error detected while processing function QuickfixsignsSet..<SNR>65_PlaceSign:
line 9:
E706: Variable type mismatch for: item
line 10:
E716: Key not present in Dictionary: ikey
E15: Invalid expression: item.ikey
line 12:
E121: Undefined variable: ikey
E116: Invalid arguments for function add
line 13:
E716: Key not present in Dictionary: new
E15: Invalid expression: item.new
line 9:
E706: Variable type mismatch for: item
line 10:
E716: Key not present in Dictionary: ikey
E15: Invalid expression: item.ikey
line 12:
E121: Undefined variable: ikey
E116: Invalid arguments for function add
line 13:
E716: Key not present in Dictionary: new
E15: Invalid expression: item.new
With the last update (7d75b7c) i get a SEGV signal when mvim starts.
mvim -V12
...
Searching for "/usr/local/Cellar/macvim/7.3-63/MacVim.app/Contents/Resources/vim/vimfiles/autoload/quickfixsigns/*.vim"
Searching for "/usr/local/Cellar/macvim/7.3-63/MacVim.app/Contents/Resources/vim/runtime/autoload/quickfixsigns/*.vim"
Searching for "/usr/local/Cellar/macvim/7.3-63/MacVim.app/Contents/Resources/vim/vimfiles/after/autoload/quickfixsigns/*.vim"
Searching for "/Users/seek/.vim/after/autoload/quickfixsigns/*.vim"
calling function QuickfixsignsSelect
function QuickfixsignsSelect returning #0
continuing in /Users/seek/.vim/plugin/quickfixsigns.vim
calling function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_ListValues
calling function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses
function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses returning #0
continuing in function QuickfixsignsSet..<SNR>2_ListValues
calling function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses
function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses returning #0
continuing in function QuickfixsignsSet..<SNR>2_ListValues
calling function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses
function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses returning #0
continuing in function QuickfixsignsSet..<SNR>2_ListValues
calling function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses
function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses returning #0
continuing in function QuickfixsignsSet..<SNR>2_ListValues
calling function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses
function QuickfixsignsSet..<SNR>2_ListValues..<SNR>2_CompareClasses returning #0
continuing in function QuickfixsignsSet..<SNR>2_ListValues
function QuickfixsignsSet..<SNR>2_ListValues returning [['vcsdiff', {'always_new': 1, 'sign'...uickfixsigns#breakpoints#GetList(%s)'}]]
continuing in function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_GetList
calling function QuickfixsignsSet..<SNR>2_GetList..quickfixsigns#vcsdiff#GetList
calling function QuickfixsignsSet..<SNR>2_GetList..quickfixsigns#vcsdiff#GetList..quickfixsigns#vcsdiff#GuessType
function QuickfixsignsSet..<SNR>2_GetList..quickfixsigns#vcsdiff#GetList..quickfixsigns#vcsdiff#GuessType returning ''
continuing in function QuickfixsignsSet..<SNR>2_GetList..quickfixsigns#vcsdiff#GetList
function QuickfixsignsSet..<SNR>2_GetList..quickfixsigns#vcsdiff#GetList returning []
continuing in function QuickfixsignsSet..<SNR>2_GetList
function QuickfixsignsSet..<SNR>2_GetList returning []
continuing in function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_ClearBuffer
calling function QuickfixsignsSet..<SNR>2_ClearBuffer..<SNR>2_ClearSigns
function QuickfixsignsSet..<SNR>2_ClearBuffer..<SNR>2_ClearSigns returning #0
continuing in function QuickfixsignsSet..<SNR>2_ClearBuffer
function QuickfixsignsSet..<SNR>2_ClearBuffer returning #0
continuing in function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_GetList
calling function QuickfixsignsSet..<SNR>2_GetList..<SNR>2_GetQFList
function QuickfixsignsSet..<SNR>2_GetList..<SNR>2_GetQFList returning []
continuing in function QuickfixsignsSet..<SNR>2_GetList
function QuickfixsignsSet..<SNR>2_GetList returning []
continuing in function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_ClearBuffer
calling function QuickfixsignsSet..<SNR>2_ClearBuffer..<SNR>2_ClearSigns
function QuickfixsignsSet..<SNR>2_ClearBuffer..<SNR>2_ClearSigns returning #0
continuing in function QuickfixsignsSet..<SNR>2_ClearBuffer
function QuickfixsignsSet..<SNR>2_ClearBuffer returning #0
continuing in function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_GetList
calling function QuickfixsignsSet..<SNR>2_GetList..quickfixsigns#marks#GetList
function QuickfixsignsSet..<SNR>2_GetList..quickfixsigns#marks#GetList returning [{'lnum': 1, 'bufnr': 1, 'col': 1, 's..., 'scope': 'buffer', 'text': 'Mark_'''}]
continuing in function QuickfixsignsSet..<SNR>2_GetList
function QuickfixsignsSet..<SNR>2_GetList returning [{'lnum': 1, 'bufnr': 1, 'col': 1, 's..., 'scope': 'buffer', 'text': 'Mark_'''}]
continuing in function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_Scope
function QuickfixsignsSet..<SNR>2_Scope returning 'buffer'
continuing in function QuickfixsignsSet
calling function QuickfixsignsSet..<SNR>2_PlaceSign
calling function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_CreateBufferSignsCache
function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_CreateBufferSignsCache returning #1
continuing in function QuickfixsignsSet..<SNR>2_PlaceSign
calling function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_GetSign
calling function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_GetSign..quickfixsigns#marks#GetSign
function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_GetSign..quickfixsigns#marks#GetSign returning 'QFS_Mark_'''
continuing in function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_GetSign
function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_GetSign returning 'QFS_Mark_'''
continuing in function QuickfixsignsSet..<SNR>2_PlaceSign
calling function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId
calling function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId..<SNR>2_Scope
function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId..<SNR>2_Scope returning 'buffer'
continuing in function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId
calling function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId..<SNR>2_GetSign
calling function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId..<SNR>2_GetSign..quickfixsigns#marks#GetSign
function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId..<SNR>2_GetSign..quickfixsigns#marks#GetSign returning 'QFS_Mark_'''
continuing in function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId..<SNR>2_GetSign
function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId..<SNR>2_GetSign returning 'QFS_Mark_'''
continuing in function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId
function QuickfixsignsSet..<SNR>2_PlaceSign..<SNR>2_SetItemId returning {'lnum': 1, 'bufnr': 1, 'col': 1, 'ik...': 'marks', 'text': 'Mark_''', 'new': 1}
continuing in function QuickfixsignsSet..<SNR>2_PlaceSign
Vim: Caught deadly signal SEGV
When i use the old method to enable quickfixsigns all is working fine.
-call QuickfixsignsSelect(g:quickfixsigns_classes)
+QuickfixsignsEnable
quickfixsigns appears to overwrite the icon/symbol for all signs, although they might have one already (e.g. via Syntastic).
Syntastic uses different symbols for (style) warning/errors, and all of the appear to become "W>" through quickfixsigns.
Is it possible to detect if a symbol is already used/defined?
Removing loc
from quickfixsigns_classes
helps here, but the location list could be used in other contexts (let g:quickfixsigns_classes=['qfl', 'marks', 'vcsdiff', 'breakpoints']
).
I've noticed lately (with the latest updates), that quickfixsigns get toggled off and on on certain events, e.g.:
after startup they are are visible for a short time, then get turned off (the whole column). On InsertLeave they'll get displayed again (but only when waiting long enough), and then will disappear later again.
I am using:
let g:quickfixsigns_events = ['BufEnter', 'CursorHold', 'CursorHoldI', 'InsertLeave']
.
When using this on a slow NFS network directory (home NAS) with VCS enabled, the crawl up the directory tree makes the plugin unusable (lot's of files in some of those directories). Disabling QF of turning off VCS support and things are snappy again. (by the way I really like the plugin, among other things it seems to take adding RCS to g:quickfixsigns#vcsdiff#vcs works without issue, something I haven't seen elsewhere)
When saving a fugitive buffer, e.g. writing to the Git index for some file, the signs for the corresponding buffer in the working tree should be updated.
It is possible to get the corresponding buffer like this:
au BufWritePost fugitive:///* call StatuslineClearCacheFugitive()
function! StatuslineClearCacheFugitive()
let fug_buffer = fugitive#buffer()
let [gitdir, fug_path] = split(bufname('%'), '//')[1:2]
let fug_path = substitute(fug_path, '\v\w*/', '', '')
let fug_path = fug_buffer.repo().tree(fug_path)
let bufnr = bufnr(fug_path)
if bufnr != -1
call QuickfixsignsSet('BufWritePost', ..., bufnr)
endif
endfunction
While it would be nice to have this by default, I can imagine that it's too specific. But for that the QuickfixsignsSet
function needs to have support for non-current buffers.
It would be great if you could add some screenshots of what this plugin does as I for one don't really understand what the plugin does and what I can gain from it.
I would like to have a command like :QuickfixsignsDisable
and (...Enable) to easily toggle usage of the plugin.
While I like having it most of the time, I would like to remove it sometimes (temporarily) to gain more screen space and/or make copying multi-line text from a terminal easier (without any left indent).
I can do :sign unplace *
to remove any put signs (this will also remove the bar reserved for displaying the signs), but after several seconds quickfixsigns appears to automatically update them again (and the bar appears again).
I have just noticed the following error when starting Vim from a directory mounted using afuse:
1. afuse -o mount_template="sshfs %r:/ %m" -o unmount_template="fusermount -u -z %m" ~/sshfs/
2. cd ~/sshfs/example.com
3. sudo vi /etc/fstab
Error detected while processing function QuickfixsignsSet..<SNR>83_GetList..quickfixsigns#vcsdiff#GetList:
line 22:
E344: Can't find directory "/home/user/sshfs/hahler.de" in cdpath
E472: Command failed
Error detected while processing function QuickfixsignsSet:
line 45:
E171: Missing :endif
The problem appears to be that the mount point is only accessible by the user itself, and not by root.
What do you recommend to jump to the next/previous sign?
I could not find anything in QuickfixSigns help about this, and Vim itself appears to be lacking support for this, too.
I have found numsign.vim (http://www.vim.org/scripts/script.php?script_id=4197) so far, but have not checked it out further.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.