-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Language specific plugins
johnpyp edited this page Jul 30, 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-tools.nvim (Lua port of the typescript VSCode plugin, adding many off-spec featuers)
- typescript.nvim (Deprecated - 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.)
- ltex_extra.nvim (ltex-ls) support for actions such as "add to dictionary"