osfeed.dev
Projects/neovim / nvim-lspconfig

nvim-lspconfig

Language server configurations for Neovim

Get it on GitHub
Unclaimed

Written by @iluxav from the project's code and releases, not by its maintainers. Last updated for v2.12.0 (2026-09-23), so it may lag behind newer releases.

Are you @neovim?Claim it, and your coding agent keeps it current with each release
v2.12.0 · 28 things you can do 34 changes to know before upgrading
Follow GitHub

Connect Neovim to language servers for diagnostics, completion, navigation, and formatting using supplied server configurations.

What you can do with nvim-lspconfig

Connect Neovim to language servers for diagnostics, completion, navigation, and formatting.

Present at v2.3.0
Good to know

Features depend on the server; install each server separately and supply its executable and root markers.

Customize language-server commands and settings through Neovim's configuration.

Present at v2.3.0
Good to know

Native `vim.lsp.config` requires Neovim 0.11+; some native server configurations are still missing at this baseline.

Inspect, start, stop, and restart language servers from Neovim.

Present at v2.3.0
Good to know

Starting a server depends on its configured filetypes, executable, and root detection.

Use OpenTofu's language server for OpenTofu and variable files.

Since v2.3.0
Good to know

Requires `tofu-ls`; detected filetypes are `opentofu` and `opentofu-vars`.

Connect Neovim to the cspell language server.

Since v2.3.0
Good to know

Requires `cspell-lsp` on PATH.

Edit HTML and ERB templates with the Herb language server.

Since v2.4.0
Good to know

Requires `herb-language-server`; root markers include `Gemfile` and `.git`.

Check spelling in source files with Codebook.

Since v2.4.0
Good to know

Requires `codebook-lsp` on PATH and a supported filetype.

Format Lua files with StyLua through Neovim's LSP client.

Since v2.5.0
Good to know

Requires `stylua` with LSP support; root markers are `.stylua.toml` and `stylua.toml`.

Show all 28

Use Docker's language server for Dockerfiles and Compose files.

Since v2.5.0
Good to know

Requires `docker-language-server`; Compose buffers use `yaml.docker-compose`.

Lint and format Markdown with rumdl.

Since v2.6.0
Good to know

Requires `rumdl` on PATH.

Format web source and data files with Oxfmt.

Since v2.6.0
Good to know

Requires `oxfmt`; supported filetypes include Svelte. A detected workspace is no longer required.

Use the Home Assistant language server for YAML configuration files.

Since v2.6.0
Good to know

Requires `vscode-home-assistant`; roots use `configuration.yaml` or `configuration.yml`.

Switch between OCaml implementation and interface files with `LspOcamllspSwitchImplIntf`.

Since v2.6.0
Good to know

Requires `ocamllsp` supporting `ocamllsp/switchImplIntf`.

Open a Markdown preview with `LspMplsOpenPreview`.

Since v2.7.0
Good to know

Requires `mpls`; preview is opened explicitly rather than automatically.

Use Tree-sitter semantic tokens and bridge LSP requests for embedded languages with Kakehashi.

Since v2.7.0
Good to know

Set `filetypes` explicitly. Automatic parser installation needs the Tree-sitter CLI, a C compiler, and Git; bridging needs additional server configuration.

Get completion and diagnostics for language-server settings by adding Lua type annotations.

Since v2.8.0
Good to know

Requires a Lua language server that understands the supplied annotations; add `lspconfig.settings.server_name` annotations manually.

Use a language server while editing Vim help files.

Since v2.8.0
Good to know

Requires `vimdoc-language-server`; buffers use the `help` filetype.

Use a language server while editing Stan programs.

Since v2.8.0
Good to know

Requires `stan-language-server`.

Complete names, jump to definitions, and browse symbols using universal-ctags.

Since v2.9.0
Good to know

Requires `ctags-lsp` and `universal-ctags` on PATH; set the desired `filetypes` explicitly.

Format and lint Markdown, Quarto, and R Markdown with Panache.

Since v2.9.0
Good to know

Requires `panache`; embedded code tools need their own setup.

Navigate definitions and references, complete code, and rename symbols in Elixir with Dexter.

Since v2.10.0
Good to know

Requires `dexter`; supported filetypes include Elixir, EEx, and HEEx.

Use the Hare language server while editing Hare files.

Since v2.10.0
Good to know

Requires `hare-lsp`; single-file use is supported.

Lint Bash, POSIX shell, and Zsh files with Shuck.

Since v2.10.0
Good to know

Requires `shuck`; configured filetypes are `bash`, `sh`, and `zsh`.

Find pytest fixture definitions and references, complete fixture names, and diagnose missing fixtures.

Since v2.11.0
Good to know

Requires `pytest-language-server`; attaches to Python buffers.

Use the Terragrunt language server for HCL configuration files.

Since v2.11.0
Good to know

Requires `terragrunt-ls`; roots use `terragrunt.hcl` or `.git`.

Use the Pkl language server for Pkl and PCF configuration files.

Since v2.12.0
Good to know

Requires `pkl-lsp`; roots use `PklProject` or `.git`.

Use Laravel-aware editor features in PHP and Blade files.

Since v2.12.0
Good to know

Requires `laravel-lsp` on PATH and an `artisan` project root.

Edit JavaScript and TypeScript with the native TypeScript language server.

ExperimentalSince v2.5.0
Good to know

Requires TypeScript 7.0+ native compiler supporting `--lsp`; no qualifying binary means no attachment.

Before you upgrade nvim-lspconfig

Newest first
v2.12.0

Pin Astro's TypeScript SDK to TypeScript 6.x or earlier; TypeScript 7 lacks `tsserverlibrary.js`, so the documented SDK lookup cannot start the server.

Action requiredAffects: Astro users using a TypeScript 7 SDK.
Read the evidence
v2.12.0

Provide `vhdl_ls.toml` as a workspace root marker. Standalone buffers and a project-local `.vhdl_ls.toml` no longer satisfy default root detection.

Action requiredInferredAffects: Users of `vhdl_ls` without the required workspace marker.
Read the evidence
Show 31 older
v2.9.0

The HTML server prefers an executable in the workspace's `node_modules/.bin` before the PATH executable.

Behavior changedInferredAffects: Users with both local and global HTML language servers.
Read the evidence
v2.8.0

Install `nextflow-language-server` on PATH or override `cmd`; the default no longer launches `nextflow-language-server-all.jar` with Java.

Action requiredInferredAffects: Users of `nextflow_ls` with a JAR-only installation.
Read the evidence
v2.7.0

ESLint no longer sets `experimental.useFlatConfig` implicitly. Set it explicitly when overriding the ESLint version's default.

Behavior changedAffects: Users selecting flat config or eslintrc.
Read the evidence
v2.6.0

Migrate deprecated `require('lspconfig')` setup calls to `vim.lsp.config` and `vim.lsp.enable`; legacy calls now warn.

Action requiredAffects: Users of the legacy framework or Neovim 0.10.
Read the evidence
v2.6.0

On Neovim 0.12 use `:lsp enable`, `:lsp disable`, and `:lsp restart` in place of `:LspStart`, `:LspStop`, and `:LspRestart`.

Action requiredAffects: Users upgrading to Neovim 0.12.
Read the evidence
v2.6.0

On Neovim 0.11.2+, argument-free `:LspStop` selects all active client names, including clients outside the current buffer.

Behavior changedInferredAffects: Users expecting `:LspStop` to affect only the current buffer.
Read the evidence
v2.6.0

JDTLS uses Neovim's cache directory and a workspace data subdirectory based on the project root name; multi-module root markers take priority.

Behavior changedInferredAffects: Java users relying on the old shared workspace location.
Read the evidence
nvim-lspconfig release history 11
v2.12.0

Use the native TypeScript 7 language server through the tsc configuration.

Details

Adds `tsc` with binary-version checks and CodeLens, plus Pkl and Laravel configurations; updates VHDL, Astro, PowerShell, and Esbonio requirements.

Install nvim-lspconfig v2.12.0 with Neovim 0.11.3+; install the selected language servers separately.

Action required / inferred: Edit JavaScript and TypeScript with the native Type…Added: Use the Pkl language server for Pkl and PCF configu…Added: Use Laravel-aware editor features in PHP and Blade…Action requiredAction required / inferredAction required / inferredBehavior changedLimit lifted / inferred: Format web source and data files with Oxfmt.Behavior changed / inferred

Seeded by @iluxav with Codex

Read the evidence
v2.11.0

Navigate pytest fixtures and get completion for available fixtures.

Details

Adds pytest and Terragrunt configurations; changes Python hint defaults, enables Terraform CodeLens, and retires older server configurations.

Install nvim-lspconfig v2.11.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Find pytest fixture definitions and references, com…Added: Use the Terragrunt language server for HCL configur…Action required / inferredAction requiredBehavior changedBehavior changed / inferred

Seeded by @iluxav with Codex

Read the evidence
v2.10.0

Navigate Elixir code with the Dexter language server.

Details

Adds Dexter, Hare, and Shuck configurations; enables Go semantic tokens and corrects ReScript incremental typechecking.

Install nvim-lspconfig v2.10.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Navigate definitions and references, complete code,…Added: Use the Hare language server while editing Hare fil…Added: Lint Bash, POSIX shell, and Zsh files with Shuck.Behavior changedBehavior changed / inferredNow works / inferred: Connect Neovim to language servers for diagnostics,…

Seeded by @iluxav with Codex

Read the evidence
v2.9.0

Navigate symbols using universal-ctags through Neovim's LSP client.

Details

Adds `ctags_lsp` and Panache; changes the default commands for Kotlin, Groovy, and Esbonio.

Install nvim-lspconfig v2.9.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Complete names, jump to definitions, and browse sym…Added: Format and lint Markdown, Quarto, and R Markdown wi…Action required / inferredAction requiredAction required / inferredBehavior changed / inferred

Seeded by @iluxav with Codex

Read the evidence
v2.8.0

Get completion and diagnostics while writing language-server settings.

Details

Adds Lua settings type annotations and configurations for Vim help and Stan; updates the Nextflow command and RobotCode virtual-environment handling.

Install nvim-lspconfig v2.8.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Get completion and diagnostics for language-server…Added: Use a language server while editing Vim help files.Added / inferred: Use a language server while editing Stan programs.Action required / inferredBehavior changed / inferred

Seeded by @iluxav with Codex

Read the evidence
v2.7.0

Preview Markdown through the mpls language server.

Details

Adds `mpls` and `kakehashi`; changes the Pony configuration name and ESLint flat-config selection.

Install nvim-lspconfig v2.7.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Open a Markdown preview with `LspMplsOpenPreview`.Added: Use Tree-sitter semantic tokens and bridge LSP requ…Action requiredBehavior changedNow works / inferred: Connect Neovim to language servers for diagnostics,…

Seeded by @iluxav with Codex

Read the evidence
v2.6.0

Format JavaScript, TypeScript, and other web files with Oxfmt.

Details

Adds rumdl and Oxfmt configurations; changes legacy commands, renamed server configurations, executable requirements, and defaults.

Install nvim-lspconfig v2.6.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Lint and format Markdown with rumdl.Added: Format web source and data files with Oxfmt.Added / inferred: Use the Home Assistant language server for YAML con…Action requiredAction requiredAction required / inferredAction required / inferredAction requiredAction required / inferredAction requiredBehavior changed / inferredBehavior changed / inferredBehavior changedNow works / inferred: Inspect, start, stop, and restart language servers…Added: Switch between OCaml implementation and interface f…Action required / inferredBehavior changed / inferredBehavior changed / inferredBehavior changed / inferred

Seeded by @iluxav with Codex

Read the evidence
v2.5.0

Format Lua files through the StyLua language server.

Details

Adds StyLua, Docker, and experimental native TypeScript configurations; enables YAML formatting and adjusts TypeScript monorepo root detection.

Install nvim-lspconfig v2.5.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Format Lua files with StyLua through Neovim's LSP c…Added / inferred: Use Docker's language server for Dockerfiles and Co…Added: Edit JavaScript and TypeScript with the native Type…Behavior changed / inferredBehavior changedBehavior changed / inferredAction requiredNow works / inferred: Connect Neovim to language servers for diagnostics,…

Seeded by @iluxav with Codex

Read the evidence
v2.4.0

Edit HTML and embedded Ruby with the Herb language server.

Details

Adds Herb and Codebook configurations; updates Neovim requirements and several existing configuration interfaces.

Install nvim-lspconfig v2.4.0 with Neovim 0.11.3+; install the selected language servers separately.

Added: Edit HTML and ERB templates with the Herb language…Added: Check spelling in source files with Codebook.Action requiredAction required / inferredAction required / inferredAction required / inferredAction requiredBehavior changed / inferredBehavior changed / inferred

Seeded by @iluxav with Codex

Read the evidence
v2.3.0

Use the OpenTofu language server while editing OpenTofu files.

Details

Adds `tofu_ls` and `cspell_ls`; restores argument-free LSP control commands and synchronous ESLint fixes.

Install nvim-lspconfig v2.3.0 with Neovim 0.11+ for native configurations; install the selected language servers separately.

Added / inferred: Use OpenTofu's language server for OpenTofu and var…Added / inferred: Connect Neovim to the cspell language server.Now works / inferred: Inspect, start, stop, and restart language servers…Now works / inferred: Connect Neovim to language servers for diagnostics,…

Seeded by @iluxav with Codex

Read the evidence
v2.3.0
Starting point

Connect Neovim to installed language servers for diagnostics and code navigation.

Details

The baseline includes supplied server configurations, per-server customization, and commands for inspecting and controlling LSP clients.

v2.3.0; native vim.lsp.config requires Neovim 0.11+. Language servers are installed separately.

Added: Connect Neovim to language servers for diagnostics,…Added: Customize language-server commands and settings thr…Added: Inspect, start, stop, and restart language servers…

Seeded by @iluxav with Codex

Read the evidence