From a2521f0e6fff15e075231878035e52008f7b2137 Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Sat, 28 Feb 2026 09:47:24 +0100 Subject: [PATCH] feat(lsp): configure eslint, tailwindcss, tsgo and prettier --- after/lsp/eslint.lua | 19 +++++++++++++++++++ after/lsp/tailwindcss.lua | 4 ++++ after/lsp/tsgo.lua | 3 +++ lua/core/autocommands.lua | 24 ++++++++++++++++++++++++ lua/lsp.lua | 3 +++ lua/plugins/mason-auto-install.lua | 19 +++++++++++++++++++ lua/plugins/nvim-treesitter.lua | 3 +++ 7 files changed, 75 insertions(+) create mode 100644 after/lsp/eslint.lua create mode 100644 after/lsp/tailwindcss.lua create mode 100644 after/lsp/tsgo.lua diff --git a/after/lsp/eslint.lua b/after/lsp/eslint.lua new file mode 100644 index 0000000..184b7ad --- /dev/null +++ b/after/lsp/eslint.lua @@ -0,0 +1,19 @@ +local lsp = require("lsp") + +---@type vim.lsp.Config +return { + on_attach = function(client, bufnr) + lsp.on_attach(client, bufnr) + vim.keymap.set("n", "lf", function() + vim.lsp.buf.format() + require("util").format({ + buf = bufnr, + cmd = { + "prettier", + "--stdin-filepath", + "%file%", + }, + }) + end, { buffer = bufnr }) + end, +} diff --git a/after/lsp/tailwindcss.lua b/after/lsp/tailwindcss.lua new file mode 100644 index 0000000..15f8961 --- /dev/null +++ b/after/lsp/tailwindcss.lua @@ -0,0 +1,4 @@ +---@type vim.lsp.Config +return { +} + diff --git a/after/lsp/tsgo.lua b/after/lsp/tsgo.lua new file mode 100644 index 0000000..19bb2fd --- /dev/null +++ b/after/lsp/tsgo.lua @@ -0,0 +1,3 @@ +---@type vim.lsp.Config +return { +} diff --git a/lua/core/autocommands.lua b/lua/core/autocommands.lua index 67a0943..5f129d4 100644 --- a/lua/core/autocommands.lua +++ b/lua/core/autocommands.lua @@ -174,3 +174,27 @@ vim.api.nvim_create_autocmd("FileType", { vim.bo.shiftwidth = 2 end, }) + +vim.api.nvim_create_autocmd("FileType", { + pattern = { + "json", + "jsonc", + "markdown", + "html", + "css", + "scss", + "less", + }, + callback = function(ev) + vim.keymap.set("n", "lf", function() + require("util").format({ + buf = ev.buf, + cmd = { + "prettier", + "--stdin-filepath", + "%file%", + }, + }) + end, { buffer = ev.buf }) + end, +}) diff --git a/lua/lsp.lua b/lua/lsp.lua index 7107cc5..8e42138 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -73,6 +73,7 @@ function M.setup() "bashls", "clangd", "cmake", + "eslint", "gopls", -- "hyprls", "intelephense", @@ -87,6 +88,8 @@ function M.setup() "ruff", "rust_analyzer", "svelte", + "tailwindcss", + "tsgo", "zls", }) diff --git a/lua/plugins/mason-auto-install.lua b/lua/plugins/mason-auto-install.lua index 72e8ee3..3d02fd2 100644 --- a/lua/plugins/mason-auto-install.lua +++ b/lua/plugins/mason-auto-install.lua @@ -16,6 +16,7 @@ return { "cmake-language-server", dependencies = { "golines" }, }, + "eslint-lsp", "gopls", "hyprls", { @@ -35,8 +36,26 @@ return { "ruff", "pyright", "pyrefly", + { + "prettier", + filetypes = { + "json", + "jsonc", + "markdown", + "html", + "css", + "scss", + "less", + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + }, + }, "rust-analyzer", "svelte-language-server", + "tailwindcss-language-server", + "tsgo", "zls", }, }, diff --git a/lua/plugins/nvim-treesitter.lua b/lua/plugins/nvim-treesitter.lua index 13c06a4..a984b52 100644 --- a/lua/plugins/nvim-treesitter.lua +++ b/lua/plugins/nvim-treesitter.lua @@ -23,6 +23,9 @@ local languages = { "markdown", "go", "svelte", + "scss", + "tsx", + "typescript", } ---@type LazyPluginSpec