Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

weird neovim key not present in dictionary errors #394

Closed
nhooyr opened this issue Jan 29, 2016 · 12 comments · Fixed by #395
Closed

weird neovim key not present in dictionary errors #394

nhooyr opened this issue Jan 29, 2016 · 12 comments · Fixed by #395

Comments

@nhooyr
Copy link

nhooyr commented Jan 29, 2016

If I run :PlugUpdate and press D or S neovim starts throwing out errors about keys not being present in dictionaries. I'm not sure what the problem is. I don't think it has to do with my neovim configuration because it still happens with a init.vim with only one plugin.

screen shot 2016-01-29 at 10 31 50 am

It continues and continues and continues with more keys not found and stuff.

@starcraftman
Copy link
Contributor

@nhooyr When you say "happens with init.vim with only one plugin" do you mean your init.vim is as minimal as this? If not, try this.

call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-easy-align'
call plug#end()

I just rebuilt neovim from latest master and cannot reproduce any problem. My build was: NVIM v0.1.2-391-g4c960c3 with Build type: RelWithDebInfo. What is the version of your neovim build? Also, since we are using the shell, what shell/platform are you using?

The line it fails on is: let job = s:jobs[a:name]. Would seem for some reason the job is no longer in our s:jobs dictionary. I am not certain why, I don't have a guess without reproducing.

@nhooyr
Copy link
Author

nhooyr commented Jan 29, 2016

@starcraftman happens to me with it as minimal as that.

I'm using the latest master as well. My build type is Dev. However I tried the latest release with RelWithDebInfo and both have the same problem. I use homebrew and it only gets the latest master if I use the option head which means it compiles as dev, if I use latest release it builds as RelWithDebInfo.

I'm using zsh as my shell.

@nhooyr
Copy link
Author

nhooyr commented Jan 29, 2016

It also happens on linux, with that tiny init.vim

@nhooyr
Copy link
Author

nhooyr commented Jan 29, 2016

Also I meant run :PlugUpdate and as it is running press D (shift-d)

@starcraftman
Copy link
Contributor

@nhooyr

Also I meant run :PlugUpdate and as it is running press D (shift-d)

Ah now this is a whole different story. This fails for me too in the same way, but you aren't supposed to push 'D' until the jobs are all finished. Naughty user! :)

I assume you imagined it would keep working without issue and diff would populate as jobs completed? Or was this just a random button press?

The current mappings are shared with the synchronous installers whose work can't be interrupted before completing (short ctrl + c). Perhaps we should simply map these post update/install finish. @junegunn thoughts?

@nhooyr
Copy link
Author

nhooyr commented Jan 29, 2016

@starcraftman but then why is there pending updates?

@starcraftman
Copy link
Contributor

@nhooyr What do you mean pending updates? The reason the jobs still running when 'D' pushed? None of those bindings (D, S...) abort current jobs, only 'q' does that currently.

@nhooyr
Copy link
Author

nhooyr commented Jan 29, 2016

@starcraftman If press D after plug update it says Last Update: and Pending Update:. What is the point of pending updates if you aren't supposed to press D while updating?

@starcraftman
Copy link
Contributor

@nhooyr Ah, I think you are confused about what was meant by 'Pending updates' in the diff buffer. This was put in for people who regularly use the 'commit' and 'tag' options, they can then preview new commits/tags before moving their locked state. It never displays anything for Plugs without one of those two options. It is a bit of a niche usage.

There is no support for the PlugDiff command during the update/install. Though it might be wise to unbind these during execution to prevent such mishaps.

@nhooyr
Copy link
Author

nhooyr commented Jan 29, 2016

Ah, i understand now thanks. I agree that would be a good idea.

starcraftman added a commit to starcraftman/vim-plug that referenced this issue Jan 29, 2016
* Do not map during prepare when function can be async.
Delay to s:finish()
* No need for print brackets on python 2.
@junegunn
Copy link
Owner

@starcraftman I think we should disable the mappings during installation. Are you working on this? And as you pointed out Pending updates are always empty without commit or tag, so we can consider not showing the section when those options are not being used.

@starcraftman
Copy link
Contributor

@junegunn Yes, I just made a branch/PR. I will go and disable the Pending updates bit when empty.

starcraftman added a commit to starcraftman/vim-plug that referenced this issue Jan 29, 2016
* Do not map during prepare when function can be async.
Delay to s:finish()
* Always create new buffer, due to mappings change.
* Don't show Pending updates when no appropriate plugs.
* No need for print brackets on python 2.
junegunn added a commit that referenced this issue Jan 29, 2016
@junegunn junegunn added the bug label Jan 29, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants