mason-lspconfig bridges mason.nvim with the lspconfig plugin - making it easier to use both
plugins together.
:help mason-lspconfig.nvim
Latest version: v2.1.0
- Introduction
- Requirements
- Installation & Usage
- Automatically enable installed servers
- Commands
- Configuration
:h mason-lspconfig-introduction
This plugin's main responsibilities are to:
- allow you to (i) automatically install, and (ii) automatically enable (
vim.lsp.enable()) installed servers - provide extra convenience APIs such as the
:LspInstallcommand - provide additional LSP configurations for a few servers
- translate between
nvim-lspconfigserver names andmason.nvimpackage names (e.g.lua_ls <-> lua-language-server)
Note
Since the introduction of :h vim.lsp.config in Neovim 0.11,
this plugin's feature set has been reduced. Use this plugin if you want to automatically enable installed servers
(:h vim.lsp.enable()) or have access to the :LspInstall
command.
:h mason-lspconfig-requirements
neovim >= 0.11.0mason.nvim >= 2.0.0nvim-lspconfig >= 2.0.0
:h mason-lspconfig-quickstart
Install using your plugin manager of choice. Setup is required:
require("mason-lspconfig").setup()It's important that you set up mason.nvim and have nvim-lspconfig available in :h runtimepath before setting up mason-lspconfig.nvim.
Refer to the Configuration section for information about which settings are available.
The following is the recommended setup when using lazy.nvim. It will set up the plugin for you, meaning you don't have
to call require("mason-lspconfig").setup() yourself.
{
"mason-org/mason-lspconfig.nvim",
opts = {},
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
"neovim/nvim-lspconfig",
},
}mason-lspconfig.nvim will automatically enable (vim.lsp.enable()) installed servers for you by default.
To disable this feature:
require("mason-lspconfig").setup {
automatic_enable = false
}To exclude certain servers from being enabled:
require("mason-lspconfig").setup {
automatic_enable = {
exclude = {
"rust_analyzer",
"ts_ls"
}
}
}Alternatively, to only enable specific servers:
require("mason-lspconfig").setup {
automatic_enable = {
"lua_ls",
"vimls"
}
}Note
This will only enable servers that are installed via Mason. It will not recognize servers installed elsewhere on your system.
:h mason-lspconfig-commands
:LspInstall [<server> ...]: Installs the provided servers. If no server is provided you will be prompted to select a server based on the current buffer's&filetype.:LspUninstall <server> ...: Uninstalls the provided servers.
:h mason-lspconfig-settings
You may optionally configure certain behavior of mason-lspconfig.nvim when calling the .setup() function. Refer to
the default configuration for a list of all available settings.
Example:
require("mason-lspconfig").setup {
ensure_installed = { "lua_ls", "rust_analyzer" },
}{
"mason-org/mason-lspconfig.nvim",
opts = {
ensure_installed = { "lua_ls", "rust_analyzer" },
},
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
"neovim/nvim-lspconfig",
},
}local DEFAULT_SETTINGS = {
-- A list of servers to automatically install if they're not already installed. Example: { "rust_analyzer@nightly", "lua_ls" }
---@type string[]
ensure_installed = {},
-- Whether installed servers should automatically be enabled via `:h vim.lsp.enable()`.
--
-- To exclude certain servers from being automatically enabled:
-- ```lua
-- automatic_enable = {
-- exclude = { "rust_analyzer", "ts_ls" }
-- }
-- ```
--
-- To only enable certain servers to be automatically enabled:
-- ```lua
-- automatic_enable = {
-- "lua_ls",
-- "vimls"
-- }
-- ```
---@type boolean | string[] | { exclude: string[] }
automatic_enable = true,
}