Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mason setup is called twice #1297

Closed
tomasgareau opened this issue Jan 2, 2025 · 4 comments
Closed

mason setup is called twice #1297

tomasgareau opened this issue Jan 2, 2025 · 4 comments

Comments

@tomasgareau
Copy link
Contributor

When setting up nvim-lspconfig, we tell Lazy that mason.nvim is a dependency and configure it right away (#865 & linked issues touch on why):

kickstart.nvim/init.lua

Lines 456 to 460 in a8f5395

-- Main LSP Configuration
'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

But later in nvim-lspconfig's config function, we explicitly setup mason again:

kickstart.nvim/init.lua

Lines 648 to 654 in a8f5395

-- 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
-- :Mason
--
-- You can press `g?` for help in this menu.
require('mason').setup()

These two setup calls can interfere with each other. For example, if you tweaked the second setup call to append Mason's bin path (e.g., to allow overriding Mason binaries with system binaries):

require("mason").setup({
  PATH = "append"
})

the first setup call will prepend the Mason bin path (the default behaviour) and your change will append the bin path. Your path then ends up being:

/path/to/mason/bin:...:/rest/of/your/path:...:/path/to/mason/bin

Oops haha.

I think we can just bin the second setup call and put all the mason configuration in the dependencies block:

  {
    -- Main LSP Configuration
    '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
+      {
+        "williamboman/mason.nvim",
+        opts = {
+	  -- Mason must be loaded before dependants so we need to configure it here.
+	  -- You can override its default settings by adding them to this table, e.g.:
+	  -- PATH = "append" -- append Mason's bin path so system packages take precedence
+	  PATH = "append",
+        },
+      },
      'williamboman/mason-lspconfig.nvim',
      'WhoIsSethDaniel/mason-tool-installer.nvim',

      -- etc
    },
    config = function()
      -- etc...
    
      -- 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
      --    :Mason
      --
      --  You can press `g?` for help in this menu.
-      require('mason').setup()

(but I'm not sure if e.g., the second setup call is required for auto-installation after the other config). Happy to toss up a PR if the above makes sense!

@iton0
Copy link
Contributor

iton0 commented Jan 3, 2025

Nice catch. @tomasgareau make a PR but put mason setup outside the dependencies table ie keep the second setup call and make the mason dependency a string. Additionally, I would move the NOTE to the second setup call.

@tomasgareau
Copy link
Contributor Author

@iton0 I could but from what I understand that would that cause issue #554 to pop back up, no? Pull request #865 re-introduced the config = true bit to have Lazy run require("mason").setup() before its dependents. I think the second setup call may happen too late.

@iton0
Copy link
Contributor

iton0 commented Jan 3, 2025

I agree that using config = true works. The only issue I encountered when experimenting with my config and calling require("mason").setup() after require("mason-lspconfig").setup() was a bug. After reading through the issues, PRs, and checking the lazy.nvim docs, I’m not entirely sure what caused the bug.

However, your original approach is correct. I was hesitant because I thought it might affect readability, but as long as the setup is properly explained and the comments from the second setup call are incorporated, it should work well.

tomasgareau added a commit to tomasgareau/kickstart.nvim that referenced this issue Jan 3, 2025
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
feoh pushed a commit that referenced this issue Jan 7, 2025
* fix: prevent mason setup from being run twice

Addresses #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:
* #210
* #554
* #555
* #865

* docs: tweak comments per review feedback
@feoh
Copy link
Collaborator

feoh commented Jan 7, 2025

Thanks for all the work on this everyone! GREAT job by all!

@feoh feoh closed this as completed Jan 7, 2025
dribic pushed a commit to dribic/nvim-files that referenced this issue Jan 8, 2025
* 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

Signed-off-by: Dejan Ribič <[email protected]>
Mutex- pushed a commit to Mutex-/kickstart.nvim that referenced this issue Jan 8, 2025
* 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
ppizarro pushed a commit to ppizarro/my.vim that referenced this issue Jan 8, 2025
* fix: prevent mason setup from being run twice

Addresses nvim-lua/kickstart.nvim#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/kickstart.nvim#210
* nvim-lua/kickstart.nvim#554
* nvim-lua/kickstart.nvim#555
* nvim-lua/kickstart.nvim#865

* docs: tweak comments per review feedback
louis-smit pushed a commit to louis-smit/kickstart.nvim that referenced this issue Jan 12, 2025
* 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
jhartzler pushed a commit to jhartzler/kickstart.nvim that referenced this issue Jan 15, 2025
* 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
Lwessel812 pushed a commit to Lwessel812/kickstart that referenced this issue Jan 16, 2025
* 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
mrmarvmarvv pushed a commit to mrmarvmarvv/kickstart.nvim that referenced this issue Jan 16, 2025
* 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
sfragis pushed a commit to sfragis/kickstart.nvim that referenced this issue Jan 17, 2025
* 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
BiboursMogz added a commit to BiboursMogz/kickstart-modular.nvim that referenced this issue Jan 19, 2025
* 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

* chore: remove redundant comment (nvim-lua#1307)

* chore: fix typo in bug report issue template (nvim-lua#1306)

* Use luals 3rd library for luv (nvim-lua#1303)

* Modifies the treesitter config to make it work on my computers.

* Disables the focus movement keymaps.

Signed-off-by: AMaugas <[email protected]>

* Adds my prefences for the options.

Signed-off-by: AMaugas <[email protected]>

* Configures Telescope layout to my liking

Signed-off-by: AMaugas <[email protected]>

* Adds additional custom configuration

Signed-off-by: AMaugas <[email protected]>

* Enables custom plugins sourcing and changes the colorscheme plugin

Signed-off-by: AMaugas <[email protected]>

* Adds highlight commands for diagnostics

Signed-off-by: AMaugas <[email protected]>

* Updates DelphiLsp to use current buffer path.

Signed-off-by: AMaugas <[email protected]>

* Adds linebreak config

* Tries to not lauch DelphiLsp when not on Windows

* Deactivates neo-tree plugin.

Signed-off-by: Bibours <[email protected]>

* Adds vim-fugitive plugin.

Signed-off-by: Bibours <[email protected]>

* Adds buffer as source completion.

Signed-off-by: Bibours <[email protected]>

* Adds lazygit front end plugin.

* Corrects the OS detection for delphi LSP.

Signed-off-by: AMaugas <[email protected]>

* Minor modifications to personal options.

Signed-off-by: AMaugas <[email protected]>

* Upstream update (#3)

* which-key v3 update (nvim-lua#1022)

* which-key v3 update

* remove unneeded brackets from which-key registration

* fix(lazy): added error handling for bootstrap (nvim-lua#1001)

* fix: add required parsers from nvim-treesitter

* Fix neo-tree keymap description (nvim-lua#932)

The lazy.nvim keys parameter does not need the `desc` to
be inside a table in the way that vim.keymap.set() does.
With this fix the keymap description will be properly
shown for example in telescope keymap search

* Remove redundant require (nvim-lua#959)

* Make debug lazy loadable (nvim-lua#978)

* Update README.md | %userprofile%\appdata\local -> %localappdata% (nvim-lua#963)

- Replace `%userprofile%\AppData\Local\nvim\` and `$env:USERPROFILE\AppData\Local\nvim` to `%localappdata%\nvim` and `$env:LOCALAPPDATA\nvim respectfully`

* Make conform.nvim be lazy-loadable again (nvim-lua#977)

The PR that disabled lazy loading (nvim-lua#818) was to fix plugin not being
loaded before write. This sets up lazy to load conform before write.

* Fix comment about mini.ai example (nvim-lua#985)

This example wasn't using `'` so this makes more sense

* Neovim 0.10 updates (nvim-lua#936)

* Neovim 0.10 updates

Provide the buffer for which to enable inlay hints

Co-authored-by: Matt Mirus <[email protected]>

* refactor: replace vim.loop with vim.uv

* Upgrade folke/neodev (sunsetting) to folke/lazydev

* Update checkhealth for 0.10 release

---------

Co-authored-by: Matt Mirus <[email protected]>
Co-authored-by: mrr11k <[email protected]>
Co-authored-by: Seb Tomasini <[email protected]>

* Update lazydev config to fix "Undefined field `fs_stat`" LSP error (nvim-lua#1040)

7513ec8 switched from neodev to
lazydev, but in the process it introduced an LSP error in `init.lua`,
which degrades the desired "first timer" experience of kickstart.nvim.

This commit follows the configuration suggested in
https://github.com/folke/lazydev.nvim/tree/6184ebbbc8045d70077659b7d30c705a588dc62f#-installation
which resolves the LSP error.

* lint: fix lsp warning in `vim.lsp.inlay_hint.is_enabled` (nvim-lua#947)

* fix: lsp warning

* review suggestion

Co-authored-by: Tom Kuson <[email protected]>

---------

Co-authored-by: Tom Kuson <[email protected]>

* Update comment about the toggle inlay hints keymap (nvim-lua#1041)

* Remove redundant hlsearch option (nvim-lua#1058)

* Modify conform comments to prevent deprecation warning when used (nvim-lua#1057)

* refactor: remove lazydev and luvit-meta as lsp dependencies (nvim-lua#1047)

* performance: defer clipboard because xsel and pbcopy can be slow (nvim-lua#1049)

* Remove treesitter prefer_git option (nvim-lua#1061)

- It's not safe and can corrupt other git repos
- nvim-treesiter maintainers consider `prefer_git` as deprecated and no
  longer needed.

See nvim-treesitter PR for details: nvim-treesitter/nvim-treesitter#6959

* Add explicit dependency of nvim-lspconfig on cmp-nvim-lsp (nvim-lua#1042)

* Update README.md (nvim-lua#1091)

* Add note in README about lazy-lock.json (nvim-lua#1090)

* Check for loop or uv for lazypath (nvim-lua#1095)

* refactor: update treesitter and which-key config (nvim-lua#1068)

* Include visual mode in LSP code action keymap (nvim-lua#1060) (nvim-lua#1064)

* Enable silent option for default neo-tree plugin keybinding (nvim-lua#1108)

* Fix: updated the windows installation commands (nvim-lua#1101)

* Update README.md

* Update README.md

* Fix: updated the windows installation commands

* fix: remove deprecated opt for conform.nvim (nvim-lua#1070)

- changed lsp_fallback -> lsp_format
- updated format_on_save function to reflect change above

* cleanup: refactor which-key configuration for cleaner setup (nvim-lua#1102)

- Moved `which-key` configuration from inline `config` to `opts` for better organization.
- Updated the key mappings setup to use `spec` for defining existing key chains.
- Removed deprecated or unnecessary comments and code.

This change aligns with updated `which-key` configuration practices, improving readability and maintainability as recommended by @VlaDexa in nvim-lua#1068.

* Fix the which-key spec issue caused by recent cleanup (nvim-lua#1113)

The recent cleanup accidentally broke the leader key specs
because the spec block was in the wrong level of braces.
That resulted in which-key no longer showing the description
of the <leader> key chains such as [S]earch and others.

* feat: update references of tsserver to ts_ls (nvim-lua#1131)

* fix: update lazy uninstall information link (nvim-lua#1148)

* Disable linting autocmd for readonly buffers (nvim-lua#1202)

* Disable linting autocmd for readonly buffers

This should avoid linting in buffers outside of the user's control,
having in mind especially the handy LSP pop-ups that describe your
hovered symbol using markdown.

Co-authored-by: Robin Gruyters <[email protected]>

* Justify guarding try_lint in readonly buffers

Co-authored-by: Robin Gruyters <[email protected]>

---------

Co-authored-by: Robin Gruyters <[email protected]>

* samarth-nagar fix: lazy help tag on line 931 (nvim-lua#1167)

* samarth-nagar fix: lazy help tag on line 931

found in issue nvim-lua#1152

* fixed white space

---------

Co-authored-by: sam <[email protected]>

* Change diagnostic symbols if vim.g.have_nerd_font is true (nvim-lua#1195)

* feat: Change diagnostic symbols if vim.g.have_nerd_font is true

* feat: Comment out changes regarding diagnostic symbols so that only those who want to change them can do so

---------

Co-authored-by: name <email>

* Set breakpoint icons and their highlight colors (nvim-lua#1194)

* feat: Set breakpoint icons and their highlight colors

* docs: Delete reference URL (written in PR)
feat: "Break" and "Stop" arguments of vim.api.nvim_set_hl are changed because they are too common nouns
feat: Comment out changes regarding diagnostic symbols so that only those who want to change them can do so

---------

Co-authored-by: name <email>

* Remove two because there are more than two. (nvim-lua#1213)

* feat: Change to prepare for upcoming deprecation of configuring diagnostic-signs using sign_define() (nvim-lua#1232)

* Fix nvim-dap not lazy loading (nvim-lua#1216)

* Fix nvim-dap not lazy loading

The keys property had local variables 'dap' and 'dap-ui' that used `require` and prevented all DAP related plugins from lazy-loading.
Fixed this by changing keys to a table and substituting the local variables with a lamba function

* Make debug keybind descriptions more consistent

* fix: which-key comment typo (nvim-lua#1227)

---------

Co-authored-by: Vladislav Grechannik <[email protected]>
Co-authored-by: Folke Lemaitre <[email protected]>
Co-authored-by: Damjan 9000 <[email protected]>
Co-authored-by: TJ DeVries <[email protected]>
Co-authored-by: Tom Kuson <[email protected]>
Co-authored-by: Artyom <[email protected]>
Co-authored-by: Richard Macklin <[email protected]>
Co-authored-by: Matt Mirus <[email protected]>
Co-authored-by: mrr11k <[email protected]>
Co-authored-by: Seb Tomasini <[email protected]>
Co-authored-by: srdtrk <[email protected]>
Co-authored-by: Arvin Verain <[email protected]>
Co-authored-by: Brandon Clark <[email protected]>
Co-authored-by: Ihsan Tonuzi <[email protected]>
Co-authored-by: abeldekat <[email protected]>
Co-authored-by: jstrot <[email protected]>
Co-authored-by: theoboldalex <[email protected]>
Co-authored-by: Matt Gallagher <[email protected]>
Co-authored-by: Michael L. <[email protected]>
Co-authored-by: Bayram Kazik <[email protected]>
Co-authored-by: Harshit Pant <[email protected]>
Co-authored-by: Nicolás Baquero <[email protected]>
Co-authored-by: Bastien Traverse <[email protected]>
Co-authored-by: Éric NICOLAS <[email protected]>
Co-authored-by: Robin Gruyters <[email protected]>
Co-authored-by: sam <[email protected]>
Co-authored-by: sam <[email protected]>
Co-authored-by: gloomy-lemon-debatable <[email protected]>
Co-authored-by: Will Winder <[email protected]>
Co-authored-by: Anjishnu Banerjee <[email protected]>
Co-authored-by: Miha <[email protected]>
Co-authored-by: mogz <[email protected]>

---------

Signed-off-by: AMaugas <[email protected]>
Signed-off-by: Bibours <[email protected]>
Co-authored-by: Tomas Gareau <[email protected]>
Co-authored-by: Damjan 9000 <[email protected]>
Co-authored-by: Nhan Luu <[email protected]>
Co-authored-by: Diorman Colmenares <[email protected]>
Co-authored-by: AMaugas <[email protected]>
Co-authored-by: Vladislav Grechannik <[email protected]>
Co-authored-by: Folke Lemaitre <[email protected]>
Co-authored-by: TJ DeVries <[email protected]>
Co-authored-by: Tom Kuson <[email protected]>
Co-authored-by: Artyom <[email protected]>
Co-authored-by: Richard Macklin <[email protected]>
Co-authored-by: Matt Mirus <[email protected]>
Co-authored-by: mrr11k <[email protected]>
Co-authored-by: Seb Tomasini <[email protected]>
Co-authored-by: srdtrk <[email protected]>
Co-authored-by: Arvin Verain <[email protected]>
Co-authored-by: Brandon Clark <[email protected]>
Co-authored-by: Ihsan Tonuzi <[email protected]>
Co-authored-by: abeldekat <[email protected]>
Co-authored-by: jstrot <[email protected]>
Co-authored-by: theoboldalex <[email protected]>
Co-authored-by: Matt Gallagher <[email protected]>
Co-authored-by: Michael L. <[email protected]>
Co-authored-by: Bayram Kazik <[email protected]>
Co-authored-by: Harshit Pant <[email protected]>
Co-authored-by: Nicolás Baquero <[email protected]>
Co-authored-by: Bastien Traverse <[email protected]>
Co-authored-by: Éric NICOLAS <[email protected]>
Co-authored-by: Robin Gruyters <[email protected]>
Co-authored-by: sam <[email protected]>
Co-authored-by: sam <[email protected]>
Co-authored-by: gloomy-lemon-debatable <[email protected]>
Co-authored-by: Will Winder <[email protected]>
Co-authored-by: Anjishnu Banerjee <[email protected]>
Co-authored-by: Miha <[email protected]>
Co-authored-by: mogz <[email protected]>
na47io pushed a commit to na47io/kickstart.nvim that referenced this issue Jan 21, 2025
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants