Skip to content
Language Server Protocol (LSP) support for vim and neovim.
Rust Vim script Python Shell Elixir Scala Other
Branch: next
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Switch default Makefile target to release. Nov 13, 2018
.github Update link. Aug 2, 2018
.vim Update rls settings. Aug 27, 2018
.vscode Optimize for horizontal move. Apr 17, 2018
autoload restore goto jdt content feature Aug 15, 2019
bin Try release macOS on CircleCI. Mar 29, 2018
ci Generate binary sha256 file on before deploy May 9, 2019
doc restore goto jdt content feature Aug 15, 2019
plugin Add LanguageClient_closeFloatingHover() (#865) Aug 15, 2019
rplugin/python3 Create factory method for HighlightDefinition (#686) Dec 29, 2018
src restore goto jdt content feature Aug 15, 2019
tests Update go sample Aug 15, 2019
.gitignore Simplify passing commands. Jul 21, 2018
.travis.yml Add back x86_64-unknown-freebsd to CI. Apr 17, 2019
Cargo.lock (cargo-release) version 0.1.147 Jul 19, 2019
Cargo.toml (cargo-release) version 0.1.147 Jul 19, 2019
INSTALL.md Add examples about how to configure for Ruby (#799) Apr 23, 2019
LICENSE.txt Update License to cover contributors. Oct 10, 2017
Makefile Add prefix to echoed messages. Nov 21, 2018
README.md Clearify language server is needed Jun 19, 2019
TODO.md Restruct approach to get values from params and vim. Mar 4, 2019
build.rs Revert "Get proper git SHA when TRAVIS_COMMIT is not available." Sep 4, 2018
install.ps1 (cargo-release) version 0.1.147 Jul 19, 2019
install.sh Try to have idempotent install based on version checking Aug 15, 2019
min-vimrc.vim Make example config more compatible. Nov 14, 2018
rustfmt.toml signal usage of rustfmt using empty rustfmt.toml Jul 17, 2019

README.md

For legacy python implementation, see branch master.

LanguageClient-neovim

CircleCI

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

rename

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.

You can’t perform that action at this time.