local opts = { ensure_installed = { "bash-language-server", "termux-language-server", "lua-language-server", "clangd", "clang-format", "taplo", "jq", "json-lsp", "svelte-language-server", "emmet-language-server", "html-lsp", "css-lsp", "typescript-language-server", "pyright", "glsl_analyzer", "kotlin-lsp", "jdtls", "csharp-language-server", "unocss-language-server", }, PATH = "skip", ui = { icons = { package_pending = " ", package_installed = "󰄳 ", package_uninstalled = " 󰚌", }, keymaps = { toggle_server_expand = "", install_server = "i", update_server = "u", check_server_version = "c", update_all_servers = "U", check_outdated_servers = "C", uninstall_server = "X", cancel_installation = "", }, }, max_concurrent_installers = 10, } vim.api.nvim_create_user_command("MasonInstallAll", function () if opts.ensure_installed and #opts.ensure_installed > 0 then vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " ")) end end, { desc = "Install all required mason packages", }) vim.pack.add({ "https://github.com/neovim/nvim-lspconfig", "https://github.com/mason-org/mason.nvim", }) require("mason").setup(opts) if not (vim.uv or vim.loop).fs_stat(vim.g.mason_path) then vim.cmd("MasonInstallAll") end