return { "williamboman/mason.nvim", dependencies = { "WhoIsSethDaniel/mason-tool-installer.nvim", "williamboman/mason-lspconfig.nvim", }, config = function() -- enable mason and configure icons require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗", }, }, }) require("mason-lspconfig").setup({ automatic_enable = { exclude = { "jdtls", }, }, ensure_installed = { "bashls", "cssls", "dockerls", "emmet_ls", "eslint", "groovyls", "html", "jdtls", "jsonls", "kotlin_lsp", "lemminx", "lua_ls", "postgres_lsp", "pylsp", "ts_ls", "vimls", "yamlls", }, }) -- formatters, linters and debug adapters for mason to install require("mason-tool-installer").setup({ ensure_installed = { "biome", "black", "checkstyle", "chrome-debug-adapter", "codespell", "eslint_d", "firefox-debug-adapter", "flake8", "fourmolu", "isort", "java-debug-adapter", "jq", "markdownlint", "matlab-language-server", "mdformat", "nginx-config-formatter", "npm-groovy-lint", "prettier", "shellcheck", "shfmt", "stylua", "xmlformatter", "yamlfmt", }, }) end, }