Language Server Protocol (LSP) support for vim and neovim.
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 fix a couple more bad comparisons with v:null Jan 31, 2019
bin Try release macOS on CircleCI. Mar 29, 2018
ci Add rustfmt explicitly in Docker. Jan 10, 2019
doc fix heading numbers in document Feb 1, 2019
plugin Trigger server start and textDocument/didOpen on FileType autocmd event. Nov 12, 2018
rplugin/python3 Create factory method for HighlightDefinition (#686) Dec 29, 2018
src Replace newline character in virtual texts. Jan 31, 2019
tests Keep compatible. Sep 14, 2018
.gitignore Simplify passing commands. Jul 21, 2018
.travis.yml Remove bsd from cross build target. Nov 13, 2018
Cargo.lock (cargo-release) version 0.1.136 Jan 31, 2019
Cargo.toml (cargo-release) version 0.1.136 Jan 31, 2019
INSTALL.md Specify vim version requirements. Jan 30, 2019
LICENSE.txt Update License to cover contributors. Oct 10, 2017
Makefile Add prefix to echoed messages. Nov 21, 2018
README.md Fix typos Sep 12, 2018
TODO.md Add virtual text support. Jan 30, 2019
build.rs Revert "Get proper git SHA when TRAVIS_COMMIT is not available." Sep 4, 2018
install.ps1 (cargo-release) version 0.1.136 Jan 31, 2019
install.sh (cargo-release) version 0.1.136 Jan 31, 2019
min-vimrc.vim Make example config more compatible. Nov 14, 2018

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'

Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }

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'],
    \ }

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

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.

Contributing

CONTRIBUTING

License

The MIT License.