-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Language specific plugins
kzsh edited this page Aug 16, 2024
·
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:
LSP/Language | Plugin | Description |
---|---|---|
jdtls | nvim-jdtls | Java's Eclipse JDT |
Metals | nvim-metals | Scala's Metals |
flutter | flutter-tools.nvim | Flutter |
lua-language-server | lazydev.nvim | Neovim api and docs support for lua |
luau-lsp | luau-lsp.nvim | A luau-lsp extension to improve your experience in neovim. |
rust-analyzer | rust-tools.nvim | Deprecated - Rust's rust-analyzer |
rust-analyzer | mrcjkb/rustaceanvim |
rust-tools.nvim fork; no lspconfig dependency |
rust-analyzer | vxpm/ferris.nvim | A rust-analyzer client plugin geared towards people who prefer to set up the LSP client manually |
rust-analyzer | crates.nvim | Rust - helps managing crates.io dependencies in Cargo.toml |
tsserver | typescript-tools.nvim | Lua port of the typescript VSCode plugin, adding many off-spec featuers |
tsserver | typescript.nvim | Deprecated - Support for tsserver's off-spec features |
Lean Theorem Prover | lean.nvim |
Lean; Note: will automatically call setup{}
|
jsonls | SchemaStore.nvim | Note, this provides schemas for jsonls but still depends on lspconfig. |
ltex-ls | grammar-guard.nvim | |
omnisharp | omnisharp-extended-lsp.nvim | Add support for decompiling. |
omnisharp | com.cloudedmountain.ide.neovim | Add support for unity. |
csharp_ls | csharpls-extended-lsp.nvim | Add support for decompiling. |
clangd | clangd_extensions.nvim | Clangd's extra features (inlay hints, type hierarchy, ...etc |
F# | Ionide | F# Vim plugin based on FsAutoComplete and LSP protocol |
deno | deno-nvim | Deno's lsp |
Haskell's haskell-language-server | haskell-tools.nvim | Haskell LSP client configuration; note: doesn't require nvim-lspconfig
|
angularls | ng.nvim | custom features, e.g. go to component template, go to component from template, etc. |
ltex-ls | ltex_extra.nvim | support for actions such as "add to dictionary" |