Back to rankings

autozimu/LanguageClient-neovim

Rust

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

language-server-protocoldeoplete-sourcedenite-sourceneovim-pluginlanguageclientvim-plugin
Star Growth
Stars
3.6k
Forks
268
Weekly Growth
Issues
102
1k2k3k
Feb 2017Mar 2020May 2023Jul 2026
Artifactscrates.iocargo add languageclient-neovim
README

For legacy python implementation, see branch master.

⚠️ Project Unmaintained

This repository is no longer actively maintained. Users are encouraged to migrate to Neovim's native LSP client , which now provides built-in functionality that supersedes the purpose of this project.

Issues and pull requests may not be reviewed or merged. Please use this code at your own discretion.

LanguageClient-neovim

CircleCI Join the chat at https://gitter.im/LanguageClient-neovim/LanguageClient-neovim

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

" note that if you are using Plug mapping you should not use `noremap` mappings.
nmap <F5> <Plug>(lcn-menu)
" Or map each action separately
nmap <silent>K <Plug>(lcn-hover)
nmap <silent> gd <Plug>(lcn-definition)
nmap <silent> <F2> <Plug>(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

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

Related repositories
eclipse-theia/theia

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.

TypeScriptnpmEclipse Public License 2.0ideeditor
theia-ide.org
21.6k2.9k
dense-analysis/ale

Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support

Vim ScriptBSD 2-Clause "Simplified" Licenselintervim
14k1.5k
neovim/nvim-lspconfig

Quickstart configs for Nvim LSP

LuaApache License 2.0vimnvim
13.8k2.5k
spyder-ide/spyder

Official repository for Spyder - The Scientific Python Development Environment

PythonPyPIMIT Licensespyderpython
spyder-ide.org
9.3k1.8k
facebook/pyrefly

A fast type checker and language server for Python

Rustcrates.ioMIT Licensecode-qualityide
pyrefly.org
6.8k443
supabase-community/postgres-language-server

A Language Server for Postgres

Rustcrates.ioMIT Licenselanguage-server-protocolpostgres
pg-language-server.com
5.2k121
emacs-lsp/lsp-mode

Emacs client/library for the Language Server Protocol

Emacs LispGNU General Public License v3.0language-server-protocolemacs
emacs-lsp.github.io/lsp-mode
5.1k973
zigtools/zls

A language server for Zig supporting developers with features like autocomplete and goto definition

ZigMIT Licensezigziglang
zigtools.org/zls/install/
5k436
MaskRay/ccls

C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting

C++Apache License 2.0cpplanguage-server-protocol
4.1k277
VonHeikemen/lsp-zero.nvim

A starting point to setup some lsp related features in neovim.

LuaMIT Licenseneovimnvim
4k89
supabase-community/postgres_lsp

A Language Server for Postgres

Rustcrates.ioMIT Licenselanguage-server-protocolpostgres
supabase.com
3.6k67
rust-lang/rls

Repository for the Rust Language Server (aka RLS)

Rustcrates.ioOtherrustlanguage-server-protocol
3.5k249