wincent / vcs-jump

πŸ€ΎπŸ»β€β™€οΈ Jump to interesting places with a Git or Mercurial repo
BSD 2-Clause "Simplified" License
28 stars 2 forks source link

Seems to have stopped working in Neovim 0.10 #11

Open scanny opened 1 month ago

scanny commented 1 month ago

Hi @wincent, thanks so much for this package! I swear I use this a hundred times a day and over the years I've gotten to where I just think of it as built in :)

I recently upgraded to Neovim v0.10, not sure that's why, but it was the same day. Since then it's not loading in neovim. Works fine from the command-line. I only use it for :VcsJump merge, to resolve conflicts during rebasing.

Symptoms are:

Does that look familiar or give you an idea where I might start looking for the problem?

I'm on a Mac btw, if that matters.

wincent commented 1 month ago

How recently have you updated the plug-in? Last week, I fixed a long-standing bug where an 'errorformat' being set somewhere else could stop the quickfix listing from correctly populating (see commit 7570eab12db9).

I don't know if that same kind of problem could be at play here, but it sounds similar. What's :verbose set efm? say when you see this happening?

scanny commented 1 month ago

I uninstalled and reinstalled and checking manually it's on the current main and git fetch retrieves no commits, so I'm confident it's the absolute latest.

:verbose set efm? shows:

errorformat=%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-Gg%\?make[%*\d]: *** [%f:%l:%m,%-Gg%\?make: *** [%f:%l:%m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l
: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[
 ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%*\d]: Entering directory %*[`']%f
',%X%*\a[%*\d]: Leaving directory %*[`']%f',%D%*\a: Entering directory %*[`']%f',%X%*\a: Leaving directory %*[`']%f',%DMaking %*\a in %f,%f|%l| %m

which sure seems wacky.

wincent commented 1 month ago

Probably not too whacky; seems to match what I get on first launch:

errorformat=%*[^"]"%f"%*\D%l: %m,"%f"%*\D%l: %m,%-Gg%\?make[%*\d]: *** [%f:%l:%m,%-Gg%\?make: *** [
%f:%l:%m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it a
ppears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\,,%-GIn file include
d from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from
 %f:%l\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,"%f"\, line %l%*\D%c%*[^ ] %m,%D%*\a[%*\d]
: Entering directory %*[`']%f',%X%*\a[%*\d]: Leaving directory %*[`']%f',%D%*\a: Entering directory %
*[`']%f',%X%*\a: Leaving directory %*[`']%f',%DMaking %*\a in %f,%f|%l| %m

That's probably the default. As :h 'efm' says:

                        *'errorformat'* *'efm'*
'errorformat' 'efm' string  (default is very long)

And, say I open a TypeScript file, it reports something like this:

errorformat=%+A %#%f %#(%l\,%c): %m,%C%m
        Last set from ~/code/wincent/aspects/nvim/files/.config/nvim/pack/bundle/opt/typescript-vim/c
ompiler/typescript.vim line 27

(note the "Last set")

The reason I asked all this about 'efm' is that when Vim can't parse the output, it will render those lines starting with ||... πŸ€”

scanny commented 1 month ago

Ah, yes, makes sense. Good lead on the parsing bit. Interesting that this works fine when I call the script from the zsh command-line, just not when I call :VcsJump merge from inside Neovim.

I only ever use this from the command-line anyway, like I'm rebasing, there's a conflict, I type $ vm (my alias for VcsJump) and I'm in resolving the conflict. Then I close and continue.

So I'm back in action just by changing my zsh alias to the script instead of vim -c 'VcsJump merge', just thought it might be worth tracking down in case someone else encounters the same problem.

Anyway, thanks for taking a look! :)