https://github.com/autozimu/LanguageClient-neovim
Language Server Protocol (LSP) support for vim and neovim.
https://github.com/autozimu/LanguageClient-neovim
denite-source deoplete-source language-server-protocol languageclient neovim-plugin vim-plugin
Last synced: 2 months ago
JSON representation
Language Server Protocol (LSP) support for vim and neovim.
- Host: GitHub
- URL: https://github.com/autozimu/LanguageClient-neovim
- Owner: autozimu
- License: mit
- Created: 2017-02-11T05:04:30.000Z (over 8 years ago)
- Default Branch: next
- Last Pushed: 2023-10-31T20:55:30.000Z (over 1 year ago)
- Last Synced: 2025-03-15T17:11:31.578Z (2 months ago)
- Topics: denite-source, deoplete-source, language-server-protocol, languageclient, neovim-plugin, vim-plugin
- Language: Rust
- Homepage:
- Size: 43.4 MB
- Stars: 3,554
- Watchers: 40
- Forks: 271
- Open Issues: 125
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-rust-cn - autozimu/LanguageClient-neovim - server-protocol/) client. Implemented in Rust and supports rls out of the box. (Development tools / IDEs)
- stars - autozimu/LanguageClient-neovim
- awesome-rust - autozimu/LanguageClient-neovim - server-protocol/) client. Implemented in Rust and supports rls out of the box. (Development tools / IDEs)
- awesome-rust - autozimu/LanguageClient-neovim - server-protocol/) client. Implemented in Rust and supports rls out of the box. (Development tools / IDEs)
- awesome-rust-cn - autozimu/LanguageClient-neovim
- awesome-rust-zh - autozimu/LanguageClient-neovim - [LSP](https://microsoft.github.io/language-server-protocol/)客户端。在 Rust 中实现并支持 rls 开箱即用。 (开发工具 / 集成开发环境(IDE))
- awesome-rust - autozimu/LanguageClient-neovim - [LSP](https://microsoft.github.io/language-server-protocol/) client. Implemented in Rust and supports rls out of the box. (Development tools / IDEs)
- awesome-rust - autozimu/LanguageClient-neovim - server-protocol/) client. Implemented in Rust and supports rls out of the box. (开发工具 Development tools / 编辑器 IDEs)
- fucking-awesome-rust - autozimu/LanguageClient-neovim - 🌎 [LSP](microsoft.github.io/language-server-protocol/) client. Implemented in Rust and supports rls out of the box. (Development tools / IDEs)
- fucking-awesome-rust - autozimu/LanguageClient-neovim - 🌎 [LSP](microsoft.github.io/language-server-protocol/) client. Implemented in Rust and supports rls out of the box. (Development tools / IDEs)
README
> For legacy python implementation, see [branch master](https://github.com/autozimu/LanguageClient-neovim/tree/master).
# LanguageClient-neovim
[](https://circleci.com/gh/autozimu/LanguageClient-neovim) [](https://gitter.im/LanguageClient-neovim/LanguageClient-neovim?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[Language Server Protocol](LSP) support for [vim] and [neovim].
[language server protocol]: https://github.com/Microsoft/language-server-protocol
[neovim]: https://neovim.io/
[vim]: http://www.vim.org/
More recordings at [Updates, screenshots & GIFs](https://github.com/autozimu/LanguageClient-neovim/issues/35).
# Features
- Non-blocking asynchronous calls.
- [Sensible completion](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-288731936).
Integrated well with [deoplete](https://github.com/Shougo/deoplete.nvim) or
[ncm2](https://github.com/ncm2/ncm2), or [MUcomplete](https://github.com/lifepillar/vim-mucomplete).
Or simply with vim built-in `omnifunc`.
- [Realtime diagnostics/compiler/lint message.](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-288732042)
- [Rename.](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-288731403)
- [Hover/Get identifier info.](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-288731665)
- [Goto definition.](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-288731744)
- Goto reference locations.
- [Workspace/Document symbols query](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-288731839).
- [Formatting](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-324497559).
- [Code Action/Quick Fix](https://github.com/autozimu/LanguageClient-neovim/issues/35#issuecomment-331016526).# Quick Start
Using [`vim-plug`](https://github.com/junegunn/vim-plug):
```vim
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }" (Optional) Multi-entry selection UI.
Plug 'junegunn/fzf'
```Example configuration
```vim
" 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 +qa` in shell to install
this plugin. Install corresponding language servers. Restart neovim/vim and
language services will be available right away. Happy hacking!# Mappings
LanguageClient-neovim defines various Plug mappings, see `:help LanguageClientMappings` for a full
list and an example configuration.# Install
[Full installation steps](INSTALL.md)
# 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 and/or
.# Documentation
- [`:help LanguageClient`](doc/LanguageClient.txt)
- [Changelog](CHANGELOG.md)
- [Troubleshooting](INSTALL.md#troubleshooting)
- [Contributing](.github/CONTRIBUTING.md)
- [The MIT License](LICENSE.txt)