return { { "mason-org/mason.nvim", event = "LazyFile", cmd = "Mason", keys = { { "cm", "Mason", desc = "Mason" } }, build = ":MasonUpdate", opts_extend = { "ensure_installed" }, opts = { ensure_installed = { "lua-language-server", "bash-language-server", "css-variables-language-server", "css-lsp", "gopls", "html-lsp", "json-lsp", "tailwindcss-language-server", "templ", }, }, }, { "neovim/nvim-lspconfig", opts = function(_, opts) local capabilities = require("blink-cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) -- apply to ALL servers opts.servers["*"].capabilities = capabilities opts.servers = opts.servers or {} opts.servers.templ = { cmd = { "templ", "lsp" }, filetypes = { "templ" }, root_dir = require("lspconfig.util").root_pattern("go.work", "go.mod", ".git"), capabilities = capabilities, } opts.servers.html = { filetypes = { "html", "templ" }, capabilities = capabilities, } opts.servers.tailwindcss = { filetypes = { "html", "templ", "javascript", "typescript", "javascriptreact", "typescriptreact", }, capabilities = capabilities, } end, }, { "stevearc/conform.nvim", opts = { formatters_by_ft = { templ = { "templ" }, }, }, }, }