pynvimはrubyとpythonとnodeをダイナミックプロバイダに指定する

# 前回の記事でpythonのみを扱いましたが・・・
pythonでdeopleteを使っていましたから、前回記事でpythonのエラーはまたですかって感じで対応したんですが、:healthcheckすると、rubyとnodeでもwarningやerrorを吐くようになっており、何だこれはとなりました。

こちら前回の記事です。
[neovimをpynvimにしないとエラーになる話
](https://qiita.com/Nedward/items/81e8b99201d8dfcce2ca)

## rubyのerror

```
## Ruby provider (optional)
ERROR
  - gem install gem install neovim
  - gem environment 
```

こんな感じのエラーを起こすようになってます。すいません、コピペを忘れたので適当に再現しています。

```
$ gem install gem install neovim
$ gem environment 
```

しかし、これをやればこのエラーは速攻で解決されます。

## nodeのwarning

```
## Node.js provider (optional)
  - INFO: Node.js: v12.8.1
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim
```

こちらもおなじみのnpmを使用してneovimを入れと言っています。

```
$ npm install -g neovim
```

これらを行ってから:healthcheckをすると、

```
## deoplete.nvim
  - OK: exists("v:t_list") was successful
  - OK: has("timers") was successful
  - OK: has("python3") was successful
  - OK: Python3.5+ was successful
  - INFO: If you're still having problems, try the following commands:
    $ export NVIM_PYTHON_LOG_FILE=/tmp/log
    $ export NVIM_PYTHON_LOG_LEVEL=DEBUG
    $ nvim
    $ cat /tmp/log_{PID}
    and then create an issue on github

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $TERM_PROGRAM='iTerm.app'
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: pbcopy

## Python 2 provider (optional)
  - INFO: pyenv: Path: /usr/local/Cellar/pyenv/1.2.13_1/libexec/pyenv
  - INFO: pyenv: Root: /Users/oosakinaoya/.pyenv
  - INFO: `g:python_host_prog` is not set.  Searching for python2 in the environment.
  - INFO: Executable: /Users/oosakinaoya/.pyenv/versions/2.7.16/bin/python2
  - INFO: Python version: 2.7.16
  - INFO: pynvim version: 0.3.2
  - OK: Latest pynvim is installed.

## Python 3 provider (optional)
  - INFO: pyenv: Path: /usr/local/Cellar/pyenv/1.2.13_1/libexec/pyenv
  - INFO: pyenv: Root: /Users/oosakinaoya/.pyenv
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /Users/oosakinaoya/.pyenv/versions/3.7.4/bin/python3
  - INFO: Python version: 3.7.4
  - INFO: pynvim version: 0.3.2
  - OK: Latest pynvim is installed.

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]
  - INFO: Host: /Users/oosakinaoya/.rbenv/shims/neovim-ruby-host
  - OK: Latest "neovim" gem is installed: 0.8.1

## Node.js provider (optional)
  - INFO: Node.js: v12.8.1
  - INFO: Neovim node.js host: /Users/oosakinaoya/.nodebrew/node/v12.8.1/lib/node_modules/neovim/bin/cli.js
  - OK: Latest "neovim" npm/yarn package is installed: 4.5.0
```

ようやく全てのエラーやwarningが消えました。一切はこれで完了ですが、なぜこんなにneovimは要求してくるのでしょうか？

## rubyとnodeとpythonに幾つかの機能を委任するようになった
[Neovim Reference](https://github.com/neovim/neovim/blob/master/runtime/doc/provider.txt)

どうやら、環境依存している機能をpython2、python3、ruby、nodeを使って統合させているんですね。
これを整えておく必要があるわけで、今回のようなエラーが発生したということですね。