mason-lspconfig
bridges mason.nvim
with the lspconfig
plugin - making it easier to use both
plugins together.
:help mason-lspconfig.nvim
Latest version: v2.0.0
- Introduction
- Requirements
- Installation
- Setup
- 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
:LspInstall
command - provide additional LSP configurations for a few servers
- translate between
nvim-lspconfig
server names andmason.nvim
package 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.0
mason.nvim >= 2.0.0
nvim-lspconfig >= 2.0.0
{
"mason-org/mason.nvim",
"mason-org/mason-lspconfig.nvim",
"neovim/nvim-lspconfig",
}
Plug 'mason-org/mason.nvim'
Plug 'mason-org/mason-lspconfig.nvim'
Plug 'neovim/nvim-lspconfig'
:h mason-lspconfig-quickstart
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.
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" },
}
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,
}