diff options
| author | Tomas Gareau <tggareau@gmail.com> | 2025-01-07 09:44:29 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-07 10:44:29 -0500 |
| commit | c5dd121029fe0cddc71c9a40dc57a34b67441b0c (patch) | |
| tree | bbf8d10465530c567deee3d4b237cb3d9c5ba1dd | |
| parent | 07daf521f90397560fa587a0fd6b77dce207b2b7 (diff) | |
| download | dots-c5dd121029fe0cddc71c9a40dc57a34b67441b0c.tar.gz | |
fix: prevent mason setup from being run twice (#1298)
* fix: prevent mason setup from being run twice
Addresses https://github.com/nvim-lua/kickstart.nvim/issues/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:
* https://github.com/nvim-lua/kickstart.nvim/pull/210
* https://github.com/nvim-lua/kickstart.nvim/issues/554
* https://github.com/nvim-lua/kickstart.nvim/pull/555
* https://github.com/nvim-lua/kickstart.nvim/pull/865
* docs: tweak comments per review feedback
| -rw-r--r-- | nvim/init.lua | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/nvim/init.lua b/nvim/init.lua index 7758df9..610018e 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -457,7 +457,9 @@ require('lazy').setup({ 'neovim/nvim-lspconfig', dependencies = { -- Automatically install LSPs and related tools to stdpath for Neovim - { 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants + -- Mason must be loaded before its dependents so we need to set it up here. + -- NOTE: `opts = {}` is the same as calling `require('mason').setup({})` + { 'williamboman/mason.nvim', opts = {} }, 'williamboman/mason-lspconfig.nvim', 'WhoIsSethDaniel/mason-tool-installer.nvim', @@ -646,13 +648,16 @@ require('lazy').setup({ } -- Ensure the servers and tools above are installed - -- To check the current status of installed tools and/or manually install - -- other tools, you can run + -- + -- To check the current status of installed tools and/or manually install + -- other tools, you can run -- :Mason -- - -- You can press `g?` for help in this menu. - require('mason').setup() - + -- You can press `g?` for help in this menu. + -- + -- `mason` had to be setup earlier: to configure its options see the + -- `dependencies` table for `nvim-lspconfig` above. + -- -- You can add other tools here that you want Mason to install -- for you, so that they are available from within Neovim. local ensure_installed = vim.tbl_keys(servers or {}) |