Skip to content

Commit 0e43c46

Browse files
tomasgareauNickalas Cason
authored andcommitted
fix: prevent mason setup from being run twice (nvim-lua#1298)
* fix: prevent mason setup from being run twice Addresses nvim-lua#1297 Currently, we're calling `require('mason').setup(...)` twice: * once when setting it as a dependency of `nvim-lspconfig` (since we set `config = true`) * once in the `config` function we define for `nvim-lspconfig` Calling setup twice can cause issues with, e.g., setting the `PATH` option: you might append Mason's bin dir in one setup call and prepend it in the other. We've kept the setup of `mason` in the `nvim-lspconfig` dependencies table since leaving it to the `config` function caused some plugin-loading-order related issues in the past. See: * nvim-lua#210 * nvim-lua#554 * nvim-lua#555 * nvim-lua#865 * docs: tweak comments per review feedback
1 parent 9b62a0d commit 0e43c46

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

init.lua

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,9 @@ require('lazy').setup({
466466
'neovim/nvim-lspconfig',
467467
dependencies = {
468468
-- Automatically install LSPs and related tools to stdpath for Neovim
469-
{ 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants
469+
-- Mason must be loaded before its dependents so we need to set it up here.
470+
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
471+
{ 'williamboman/mason.nvim', opts = {} },
470472
'williamboman/mason-lspconfig.nvim',
471473
'WhoIsSethDaniel/mason-tool-installer.nvim',
472474

@@ -655,13 +657,16 @@ require('lazy').setup({
655657
}
656658

657659
-- Ensure the servers and tools above are installed
658-
-- To check the current status of installed tools and/or manually install
659-
-- other tools, you can run
660+
--
661+
-- To check the current status of installed tools and/or manually install
662+
-- other tools, you can run
660663
-- :Mason
661664
--
662-
-- You can press `g?` for help in this menu.
663-
require('mason').setup()
664-
665+
-- You can press `g?` for help in this menu.
666+
--
667+
-- `mason` had to be setup earlier: to configure its options see the
668+
-- `dependencies` table for `nvim-lspconfig` above.
669+
--
665670
-- You can add other tools here that you want Mason to install
666671
-- for you, so that they are available from within Neovim.
667672
local ensure_installed = vim.tbl_keys(servers or {})

0 commit comments

Comments
 (0)