Skip to content
Justin M. Keyes edited this page Apr 29, 2025 · 9 revisions

What is nvim-lspconfig? Does nvim-lspconfig provide a language server client?

nvim-lspconfig includes none of the language server client implementation. All of the code for the language server client is located in the core of neovim. Lspconfig is just "data". It provides starter configs for various LSP servers:

  • Sets common filetypes to auto-attach to buffers.
  • Sends common server-specific initialization options and settings.

Do I need nvim-lspconfig ?

You can use the built-in language server client without nvim-lspconfig. You can just copy any of the configs in https://github.com/neovim/nvim-lspconfig/tree/master/lsp directly into your personal config.

Why do I have to install nvim-jdtls/nvim-metals if I have nvim-lspconfig installed already? (or vice versa)

Many servers go "off-spec" and add their own functionality, which requires custom handlers. Language server specific plugins like nvim-jdtls and nvim-metals can be safely installed alongside nvim-lspconfig, and you should prefer language specific extensions for their respective servers.

Clone this wiki locally