Git Product home page Git Product logo

quickfixsigns_vim's People

Contributors

bbinet avatar blueyed avatar chronial avatar inecas avatar noscript avatar teranex avatar tomtom avatar vhda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickfixsigns_vim's Issues

brakes vim ui on :make

Happens every other time I run :make. Entire make output gets swallowed and also the statusline disappears. Screenshot attached without quickfixsigns_vim (left) and with:
make

configure gutter width

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.

Error when using netrw / virtual file

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.

Error when running from terminal

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?

use quickfixsigns when over column width?

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!

errors with Fugitive

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

Accuracy of vcs diff markers/signs deteriorates over time

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.

Master regression

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:

  1. Open vim
  2. Type for example :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.

Why this plugin is creating a temparay directory under /tmp?

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 / QuickfixsignsEnable might not setup g:quickfixsigns_register again

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.

Issue #72 still reproduces

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)

Clear buffer markers - don't toggle plugin

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

VCS signs overlayed with generic marks

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?!

Switching between buffers is slow

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

Invalid lnum when using Fugitive Glog command

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

How to change the background color of the quickfixsigns column?

The background color of the signs column is ood.

I use solarized colorscheme and have set foldenable and set foldcolumn=1 as well as set nu.

I think the background color of the quifixsigns column should be the same as the fold column or the line nuber column.

How can I fix this?

QuifixSigns Column Background Color

Strange error appearing frequently

screen shot 2014-03-26 at 10 07 26 am

Not sure what is causing it, but the above error seems to be happening frequently whenever QuickfixSigns tries to do anything (save file, change buffer, etc). The function failing is getbufvar, which makes me think that the fact that I have a lot of buffers open might have something to do with it.

Running commands on FocusGained breaks on windows

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.

How to disable signs in a plugin window?

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?

Different max values per type/class (esp. with vcsdiff)

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.

maintained?

Hi @tomtom . Is this repo maintained? if not, I'll file a PR to mark it as unmaintained.

Thanks!

Performance impact / Profiling information

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('.')

Unnecessary 'silent sign list' in plugin/quickfixsigns.vim?

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?!

err when open *.org file (VimOrganizer)

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()

Error in ClearBuffer: "E158: Invalid buffer name: "

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.

vcsdiff: git: using -U0 causes diffs to be mis-aligned

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:

git version 2.13.1.

Since using --function-context adds extra processing, I suggest to use -U1 instead of -U0.

Errors when opening a directory, in QuickfixsignsSet..<SNR>65_PlaceSign

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

MacVim: Caught deadly signal SEGV

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

Do not overwrite signs from Syntastic's location list

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']).

Jumpy behaviour (get toggled by itself, e.g. on InsertLeave)

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'].

Feature Request: parameter to set VCS directory crawl depth

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)

Update signs of corresponding buffer for fugitive buffers

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.

Screenshots

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.

Add means to temporarily disable quickfixsigns

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).

Error when running from a non-accessible directory (afuse mount as user, vim as root)

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.