require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗", }, }, }) require("mason-lspconfig").setup({ ensure_installed = {}, automatic_installation = true, }) require("mason-tool-installer").setup({ -- a list of all tools you want to ensure are installed upon -- start; they should be the names Mason uses for each tool ensure_installed = { "bash-language-server", "clangd", "cmake-language-server", "css-lsp", "docker-compose-language-service", "dockerfile-language-server", "emmet-ls", "eslint-lsp", "goimports", "goimports-reviser", "golangci-lint", "golangci-lint-langserver", "golines", "gopls", "gradle-language-server", "html-lsp", "jdtls", "json-lsp", "kotlin-language-server", "lua-language-server", "rust-analyzer", "rustfmt", "stylua", "taplo", "typescript-language-server", "vue-language-server", "yaml-language-server", "yamlfmt", "yamllint", }, -- if set to true this will check each tool for updates. If updates -- are available the tool will be updated. This setting does not -- affect :MasonToolsUpdate or :MasonToolsInstall. -- Default: false auto_update = true, -- automatically install / update on startup. If set to false nothing -- will happen on startup. You can use :MasonToolsInstall or -- :MasonToolsUpdate to install tools and check for updates. -- Default: true run_on_start = true, -- set a delay (in ms) before the installation starts. This is only -- effective if run_on_start is set to true. -- e.g.: 5000 = 5 second delay, 10000 = 10 second delay, etc... -- Default: 0 start_delay = 15000, -- 3 second delay -- Only attempt to install if 'debounce_hours' number of hours has -- elapsed since the last time Neovim was started. This stores a -- timestamp in a file named stdpath('data')/mason-tool-installer-debounce. -- This is only relevant when you are using 'run_on_start'. It has no -- effect when running manually via ':MasonToolsInstall' etc.... -- Default: nil debounce_hours = 24, -- at least 5 hours between attempts to install/update })