Language Server Protocol (LSP) support for vim and neovim.
For legacy python implementation, see branch master.
Language Server Protocol support for vim and neovim.
More recordings at Updates, screenshots & GIFs.
omnifunc.
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 hiddenlet 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'], \ }" note that if you are using Plug mapping you should not use
noremap
mappings. nmap (lcn-menu) " Or map each action separately nmap K (lcn-hover) nmap gd (lcn-definition) nmap (lcn-rename)
Run command
nvim +PlugInstall +UpdateRemotePlugins +qain shell to install this plugin. Install corresponding language servers. Restart neovim/vim and language services will be available right away. Happy hacking!
LanguageClient-neovim defines various Plug mappings, see
:help LanguageClientMappingsfor a full list and an example configuration.
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/.