Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. nvim-lspconfig

nvim-lspconfig

Apache-2.0Luav2.10.0

A collection of ready-to-use Language Server Protocol configurations for Neovim's built-in LSP client.

GitHubGitHub
13.7k stars2.5k forks0 contributors

What is nvim-lspconfig?

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.

Target Audience

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.

Value Proposition

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.

Overview

Quickstart configs for Nvim LSP

Use Cases

Best For

  • Quickly enabling language server support for a wide range of programming languages in Neovim without writing custom configurations from scratch.
  • Neovim users who want to extend or override default LSP server configurations easily using `vim.lsp.config()` calls or local `lsp/` directory files.
  • Troubleshooting LSP server status and configuration issues using the built-in `:checkhealth vim.lsp` command for diagnostics.
  • Developers seeking auto-completion and diagnostics for LSP server settings in their Neovim configuration files via generated Lua type definitions.
  • Contributing new or updated language server configurations to the Neovim community through a standardized, file-based approach.
  • Migrating from the deprecated `require('lspconfig')` framework to the newer `vim.lsp.config` system in Neovim 0.11+ for future-proof setups.

Not Ideal For

  • Neovim users on versions below 0.11.3, as support is being phased out and requires migration to newer APIs.
  • Developers who want plugins that automatically install and manage language servers, since nvim-lspconfig only provides configurations without installation.
  • Teams requiring commercial or guaranteed support for LSP setups, as configs are community-maintained and best-effort, potentially leading to inconsistencies.

Pros & Cons

Pros

Wide Server Coverage

Includes pre-configured settings for numerous language servers like pyright and rust_analyzer, enabling quick enablement across multiple programming languages without manual config writing.

Native Neovim Integration

Configs are automatically discovered and merged by Neovim's built-in `vim.lsp.config` system, ensuring seamless compatibility and reducing setup complexity.

Type Annotations for Configs

Provides generated Lua type definitions for LSP server settings, allowing editor auto-completion and diagnostics in configuration files for fewer errors.

Built-in Health Diagnostics

Features the `:checkhealth vim.lsp` command for troubleshooting server status and configuration issues directly within Neovim, aiding in quick problem-solving.

Cons

Manual Server Installation

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.

Deprecated API Transition

The shift from `require('lspconfig')` to `vim.lsp.config` requires migration for existing users, potentially causing confusion and breaking older configurations.

Community Maintenance Risks

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.

Frequently Asked Questions

Quick Stats

Stars13,702
Forks2,456
Contributors0
Open Issues26
Last commit1 day ago
CreatedSince 2019

Tags

#vimscript#developer-tools#code-editing#language-server#vim#lsp-client#plugin#language-server-protocol#neovim#lua#nvim#lsp

Built With

L
Lua

Included in

Neovim20.6k
Auto-fetched 22 hours ago

Related Projects

lspsaga.nvimlspsaga.nvim

improve neovim lsp experience

Stars3,791
Forks303
Last commit26 days ago
none-ls.nvimnone-ls.nvim

null-ls.nvim reloaded / Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.

Stars3,233
Forks120
Last commit6 days ago
rustaceanvimrustaceanvim

🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim

Stars3,010
Forks132
Last commit1 day ago
nvim-lintnvim-lint

An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support.

Stars2,745
Forks308
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub