onivim / oni

Oni: Modern Modal Editing - powered by Neovim
https://www.onivim.io
MIT License
11.35k stars 301 forks source link

Errors in normal neovim using dein since installing oni #1163

Closed topaxi closed 6 years ago

topaxi commented 6 years ago

Since I've installed oni I get these errors in my console neovim: nvimerror

Any way to get rid of these? Does oni install plugins into my neovim plugin dir?

bryphe commented 6 years ago

That's strange, Oni does not install plugins into your neovim plugin dir.

A few questions:

When Oni creates a Neovim instance, it adds Oni's plugin folders to the runtimepath, but that should only impact the session running in Oni - unless you have a plugin that happens to cache or store the runtimepath.

topaxi commented 6 years ago

I'm on Ubuntu Linux 17.10

:set rtp?

runtimepath=~/.config/nvim,/etc/xdg/xdg-openbox/nvim,/etc/xdg/nvim,~/.local/share/nvim/site,/usr/share/
openbox/nvim/site,/usr/local/share/nvim/site,/usr/share/nvim/site,/var/lib/snapd/desktop/nvim/site,~/.loc
al/share/dein/repos/github.com/Valloric/YouCompleteMe,~/.local/share/dein/repos/github.com/Shougo/vimproc
.vim,~/.local/share/dein/repos/github.com/Shougo/dein.vim,~/.local/share/dein/repos/github.com/marijnh/te
rn_for_vim,~/.local/share/dein/.cache/init.vim/.dein,/usr/share/nvim/runtime,~/.local/share/dein/repos/gi
thub.com/marijnh/tern_for_vim/after,~/.local/share/dein/.cache/init.vim/.dein/after,/var/lib/snapd/deskto
p/nvim/site/after,/usr/share/nvim/site/after,/usr/local/share/nvim/site/after,/usr/share/openbox/nvim/sit
e/after,~/.local/share/nvim/site/after,/etc/xdg/nvim/after,/etc/xdg/xdg-openbox/nvim/after,~/.config/nvim
/after,/opt/Oni/resources/app/vim/core/colors,/opt/Oni/resources/app/vim/core/oni-core-interop,/opt/Oni/r
esources/app/vim/core/oni-core-statusbar,/opt/Oni/resources/app/vim/core/oni-plugin-git,/opt/Oni/resource
s/app/vim/core/oni-plugin-reasonml,/opt/Oni/resources/app/vim/core/oni-plugin-typescript,/opt/Oni/resourc
es/app/vim/core/typescript-vim,/opt/Oni/resources/app/extensions/css,/opt/Oni/resources/app/extensions/go
,/opt/Oni/resources/app/extensions/javascript,/opt/Oni/resources/app/extensions/less,/opt/Oni/resources/a
pp/extensions/reason,/opt/Oni/resources/app/extensions/scss,/opt/Oni/resources/app/extensions/theme-icons
-seti,/opt/Oni/resources/app/extensions/theme-onedark,/opt/Oni/resources/app/extensions/typescript,/opt/O
ni/resources/app/vim/core,/opt/Oni/resources/app/extensions,~/.oni/plugins,~/.config/nvim/bundle/vim-airl
ine,~/.opam/system/share/merlin/vim,~/.config/nvim/eclim,~/.config/nvim/eclim/after

I'm using dein for plugin management:

set runtimepath+=/home/topaxi/.local/share/dein/repos/github.com/Shougo/dein.vim
if dein#load_state('/home/topaxi/.local/share/dein')
  call dein#begin('/home/topaxi/.local/share/dein')
  call dein#add('/home/topaxi/.local/share/dein/repos/github.com/Shougo/dein.vim')

  call dein#add('bling/vim-airline')
  call dein#add('tpope/vim-fugitive')
  call dein#add('Shougo/vimproc.vim', { 'build': 'make' })
  call dein#add('Quramy/tsuquyomi')
  call dein#add('neomake/neomake')
  call dein#add('sbdchd/neoformat')
  call dein#add('elzr/vim-json')
  call dein#add('ap/vim-css-color')
  call dein#add('godlygeek/tabular')
  call dein#add('plasticboy/vim-markdown')
  call dein#add('marijnh/tern_for_vim', { 'build': 'yarn' })
  call dein#add('rust-lang/rust.vim')
  call dein#add('mustache/vim-mustache-handlebars')
  call dein#add('fholgado/minibufexpl.vim')
  call dein#add('kien/ctrlp.vim')
  call dein#add('hail2u/vim-css3-syntax')
  call dein#add('airblade/vim-gitgutter')
  call dein#add('editorconfig/editorconfig-vim')
  call dein#add('elixir-lang/vim-elixir')
  call dein#add('Valloric/YouCompleteMe', { 'build': 'python3 install.py --all' })
  call dein#add('moll/vim-node')
  call dein#add('mattn/emmet-vim')
  call dein#add('scrooloose/nerdtree')
  call dein#add('jistr/vim-nerdtree-tabs')
  call dein#add('scrooloose/nerdcommenter')
  call dein#add('pangloss/vim-javascript')
  call dein#add('leafgarland/typescript-vim')
  call dein#add('digitaltoad/vim-pug')
  call dein#add('vim-ruby/vim-ruby')
  call dein#add('kchmck/vim-coffee-script')
  call dein#add('flowtype/vim-flow')
  call dein#add('tpope/vim-rails')
  call dein#add('Quramy/vim-js-pretty-template')
  call dein#add('tikhomirov/vim-glsl')
  call dein#add('mxw/vim-jsx')
  call dein#add('sjl/gundo.vim')

  call dein#add('reasonml-editor/vim-reason')

  call dein#end()
  call dein#save_state()
endif
bryphe commented 6 years ago

Thanks for the info, @topaxi ! Sorry that you hit this.

It seems like an integration issue with dein... It looks like dein does this thing where it saves the runtimepath: https://github.com/Shougo/dein.vim/blob/09db90d2073c0c921c4e4046fffba343009da898/autoload/dein/util.vim#L267

I imagine what happened is that Oni ran with dein, and then dein saved the runtimepath (along with the ones Oni adds).

It looks like dein exposes a call to clear that cache via :call dein#clear_state() to revert that, but I don't know a ton about the side effects. You could also try modifying the cached vim file that dein creates directly and remove those.

I started modifying the Wiki to call out issues like this - adding an 'Incompatible Vim Plugins': https://github.com/onivim/oni/wiki/Plugins#incompatible-vim-plugins

topaxi commented 6 years ago

Awesome, thanks for debugging this :heart: I've disabled dein#save_state() in oni now using:

if !exists("g:gui_oni")
  call dein#save_state()
endif

I've also added this snippet to the wiki page.

brglng commented 6 years ago

According to @Shougo in https://github.com/Shougo/dein.vim/issues/262, if the behavior oni runs nvim is changed to --headless instead of --embed, the issue could be fixed. Is there any chance of fixing this issue?

bryphe commented 6 years ago

@brglng - thanks for the heads up. I'll reopen this.

I'm not familiar with the difference between --headless vs --embed - does --headless still enable extended UI functionality?

Shougo commented 6 years ago

if the behavior oni runs nvim is changed to --headless instead of --embed, the issue could be fixed. Is there any chance of fixing this issue?

No. I will implement runtimepath checking in dein.vim.

bryphe commented 6 years ago

Thanks @Shougo ! Let me know if there is anything I can do on the Oni side

Shougo commented 6 years ago

I have fixed the problem in dein.vim.

badosu commented 6 years ago

Thanks @Shougo!

@topaxi Let us know if you still find any issues after the last dein.vim changes.