A collection of ready-to-use Language Server Protocol configurations for Neovim's built-in LSP client.
nvim-lspconfig is a collection of pre-configured server-specific configuration files for the Neovim Language Server Protocol (LSP) client. It simplifies the setup of language servers for various programming languages, enabling features like code completion, diagnostics, and go-to-definition directly within Neovim. The project provides community-maintained configuration data that integrates seamlessly with Neovim's native LSP framework.
Neovim users (version 0.11.3 or higher) who want to easily configure and use language servers for enhanced code editing features across multiple programming languages. It is particularly useful for developers who prefer a minimalist, configuration-focused approach without a heavy framework.
Developers choose nvim-lspconfig because it offers a comprehensive, best-effort set of server configurations that are automatically discovered and merged by Neovim's built-in `vim.lsp.config` system, reducing manual setup. Its unique selling point is providing type annotations for LSP server settings, enabling editor auto-completion and diagnostics for configuration, alongside community-driven maintenance that keeps configs up-to-date.
Quickstart configs for Nvim LSP
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes pre-configured settings for numerous language servers like pyright and rust_analyzer, enabling quick enablement across multiple programming languages without manual config writing.
Configs are automatically discovered and merged by Neovim's built-in `vim.lsp.config` system, ensuring seamless compatibility and reducing setup complexity.
Provides generated Lua type definitions for LSP server settings, allowing editor auto-completion and diagnostics in configuration files for fewer errors.
Features the `:checkhealth vim.lsp` command for troubleshooting server status and configuration issues directly within Neovim, aiding in quick problem-solving.
Does not install or manage language servers; users must separately handle installations and PATH setup, which can be tedious and error-prone for multiple servers.
The shift from `require('lspconfig')` to `vim.lsp.config` requires migration for existing users, potentially causing confusion and breaking older configurations.
Configs are best-effort and supported by the community, which may lead to outdated or incomplete configurations for less popular or rapidly changing language servers.