stefandtw / quickfix-reflector.vim

Change code right in the quickfix window
MIT License
347 stars 18 forks source link

Sometimes when I insert things in the quickfix window, vim gives this error and quickfix-reflector won't work #30

Open vhoyer opened 4 years ago

vhoyer commented 4 years ago

image

stefandtw commented 4 years ago

I can't tell much from the error. Does :messages show more? If you could provide a step-by-step way to reproduce the problem, that might be helpful.

vhoyer commented 4 years ago

Unfortunately (or fortunately :sweat_smile:), I don't always get this error, and I'm not sure how to reproduce it, but the next time I get it I will check the messages and send here. Is there any other information I can get when this happens? :thinking:

(btw, great extension, I love using it ~when I don't give this error~ :sweat_smile:, thanks)

stefandtw commented 4 years ago

The command that produced the quickfix list might be interesting, and maybe the output of :echo getqflist().

In general, most problems come from other plug-ins. So another way to track down the cause would be to deactivate some (or all) other plug-ins and check whether the issue persists.

vhoyer commented 4 years ago

:messages don't show anything more :/

output from :echo getqflistt()

[{'lnum': 6, 'bufnr': 50, 'col': 1, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': 'Vue.component(''card'', Card);'}, {'lnum': 7, 'bufnr': 50, 'col': 1, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': 'Vue.component(''my-footer'', MyFooter);'}
, {'lnum': 8, 'bufnr': 50, 'col': 1, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': 'Vue.component(''context-menu'', ContextMenu);'}, {'lnum': 7, 'bufnr': 3, 'col': 1, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': 'new Vue({'}, {'lnum': 14,
'bufnr': 36, 'col': 1, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': '    Vue: ''readonly'','}, {'lnum': 335, 'bufnr': 40, 'col': 1, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': '    Vue.nextTick(() => {'}, {'lnum': 3, 'bufnr': 3, 'col': 1
, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': 'import Vue from ''vue'';'}, {'lnum': 1, 'bufnr': 50, 'col': 1, 'pattern': '', 'valid': 1, 'vcol': 0, 'nr': 0, 'type': '', 'module': '', 'text': 'import Vue from ''vue'';'}]

and I'm opening the quickfix windon through fzf, this are my (relevant) configurations for fzf:

"...
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
"...

" make :Rg<cr> see hidden files, cuz duh, why this is not default?
command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --hidden --no-heading -g '!.git/*' --color=always --smart-case ".shellescape(<q-args>), 1, <bang>0)

Do you think this issue is on fzf? The FZF command I use is the :Rg

stefandtw commented 4 years ago

I loaded your example using call setqflist() and was unable to find any issue.

I searched for the code in the screenshot and found this file:

https://github.com/neovim/neovim/blob/master/runtime/ftplugin/qf.vim

So it could have something to do with filetype plugins or syntax highlighting.

When it happens again, check if the output of :echo &ft and :echo &syntax are both qf. If they are not, that could be a clue. Make sure you are inside the quickfix window before you enter the commands.

Other than that, the only thing to do is to try and notice any pattern to the circumstances when the error occurs.

Leaving this open for now, in case more information comes up.

vhoyer commented 4 years ago

yeah, when, this error happens, the syntax is "invalid" all the buffer is in plain text. But I haven't explicitly checked the &syntax or &ft

vhoyer commented 4 years ago

Happened again:

:echo &ft
qf
:echo &syntax

the &syntax returns nothing, also we have no colors: image

vhoyer commented 4 years ago

Also, if this error happens, I have to close and re-open nvim for the qf-reflector window to work again. Cuz whenever I open it again, the same error comes out

stefandtw commented 4 years ago

What happens if you :set syntax=qf after the error happens? Also :set syntax=.

When exactly does the error happen? When you enter insert mode, when you leave it, or on another trigger?

To get further here without being able to reproduce the problem is difficult. We could use something like a stack trace. There is a verbose setting. Maybe that could help. (https://stackoverflow.com/questions/9656429/debugging-vim-plugins-with-call-traces)

vhoyer commented 4 years ago

What happens if you :set syntax=qf after the error happens?

The quickfixwindow gets the syntax hightligh

Also :set syntax=.

It gets all white plain text again.

When exactly does the error happen? When you enter insert mode, when you leave it, or on another trigger?

Another trigger, when the Quickfix window opens, after that error occurs and the quickfix is opened when I try editing I can't: image

To get further here without being able to reproduce the problem is difficult.

I know it's difficult, sorry for the trouble and thanks a lot for the attention.

We could use something like a stack trace. There is a verbose setting. Maybe that could help. (https://stackoverflow.com/questions/9656429/debugging-vim-plugins-with-call-traces)

I will try record the stack traces next time