Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim.
3,946
stars
423
commits
Lua
primary language
Aug 27, 2026
updated
mason-lspconfig bridges mason.nvim with the lspconfig plugin - making it easier to use both
plugins together.
:help mason-lspconfig.nvim
Latest version: v2.3.0
:h mason-lspconfig-introduction
This plugin's main responsibilities are to:
vim.lsp.enable()) installed servers:LspInstall commandnvim-lspconfig server names and mason.nvim package names (e.g. lua_ls <-> lua-language-server)[!NOTE] Since the introduction of
:h vim.lsp.configin 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:LspInstallcommand.
: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.
lazy.nvimThe 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" },
}
lazy.nvim{
"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,
}
(top 30 of 100)
Lua
96.1%
Makefile
1.7%
Vim Script
1.6%
Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim.
3,946
stars
423
commits
Lua
primary language
Aug 27, 2026
updated
mason-lspconfig bridges mason.nvim with the lspconfig plugin - making it easier to use both
plugins together.
:help mason-lspconfig.nvim
Latest version: v2.3.0
:h mason-lspconfig-introduction
This plugin's main responsibilities are to:
vim.lsp.enable()) installed servers:LspInstall commandnvim-lspconfig server names and mason.nvim package names (e.g. lua_ls <-> lua-language-server)[!NOTE] Since the introduction of
:h vim.lsp.configin 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:LspInstallcommand.
: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.
lazy.nvimThe 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" },
}
lazy.nvim{
"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,
}
(top 30 of 100)
Lua
96.1%
Makefile
1.7%
Vim Script
1.6%