For legacy python implementation, see branch master.
LanguageClient-neovim

Language Server Protocol (LSP) support for vim and neovim.

More recordings at Updates, screenshots & GIFs.
Features
Quick Start
Using vim-plug:
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }
" (Optional) Multi-entry selection UI.
Plug 'junegunn/fzf'
Example configuration
" Required for operations modifying multiple buffers like rename.
set hidden
let g:LanguageClient_serverCommands = {
\ 'rust': ['~/.cargo/bin/rustup', 'run', 'stable', 'rls'],
\ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'],
\ 'javascript.jsx': ['tcp://127.0.0.1:2089'],
\ 'python': ['/usr/local/bin/pyls'],
\ 'ruby': ['~/.rbenv/shims/solargraph', 'stdio'],
\ }
nnoremap <F5> :call LanguageClient_contextMenu()<CR>
" Or map each action separately
nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
Run command nvim +PlugInstall +UpdateRemotePlugins +qa in shell to install
this plugin. Install corresponding language servers. Restart neovim/vim and
language services will be available right away. Happy hacking!
Install
INSTALL
Troubleshooting
Troubleshooting
Language Servers
Note, you will also need language server(s) to take advantages of
this plugin. To find list of language server implementations and how
to install them, please see http://langserver.org and/or
https://microsoft.github.io/language-server-protocol/implementors/servers/.
Documentation
:help LanguageClient for full list of configurations, commands and functions.
Changelog
See Updates. Subscribe the issue if you want to receive notifications.
Contributing
CONTRIBUTING
License
The MIT License.