Files
nvim/lua/plugins/lsp.lua
2026-01-21 17:25:34 +11:00

64 lines
1.5 KiB
Lua

return {
{
"mason-org/mason.nvim",
event = "LazyFile",
cmd = "Mason",
keys = { { "<leader>cm", "<cmd>Mason<cr>", 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" },
},
},
},
}