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

What is nvim-lspconfig? Does it provide a LSP client?

nvim-lspconfig includes none of the LSP client implementation. All of the code for the LSP client is located in the core of neovim.

nvim-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.