-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Language specific plugins
Jose Veiga edited this page Feb 12, 2023
·
31 revisions
Nvim-lspconfig is meant to implement basic configuration and settings for most language servers. The beauty of the language server protocol, is most language servers should expose their entire functionality without any special per-server treatment.
Some servers send requests outside of the language server protocol specification to extend the functionality of the protocol. Eclipse JDTLS is one such example. An ecosystem of per language plugins is forming around neovim's core implementation to provide an enhanced experience compared to nvim-lspconfig. We recommend you install these plugins if you are using the language in question. Here are some recommendations:
- nvim-jdtls (Java's Eclipse JDT)
- nvim-metals (Scala's Metals)
- flutter-tools.nvim (Flutter)
- rust-tools.nvim (Rust's rust-analyzer)
- typescript.nvim (Support for tsserver's off-spec features)
- lean.nvim (Lean)
- SchemaStore.nvim (jsonls): Note, this provides schemas for jsonls but still depends on lspconfig.
- grammar-guard.nvim (ltex-ls)
- omnisharp-extended-lsp.nvim (omnisharp) Add support for decompiling.
- com.cloudedmountain.ide.neovim (omnisharp) Add support for unity.
- csharpls-extended-lsp.nvim (csharp_ls) Add support for decompiling.
- clangd_extensions.nvim Clangd's extra features (inlay hints, type hierarchy, ...etc) for C and C++
- Ionide for F#
- deno-nvim (Deno's lsp)
- haskell-tools.nvim (Haskell's haskell-language-server)
- ng.nvim (angularls custom features, e.g. go to component template, go to component from template, etc.)