From 4f8af808b1f1b0378cb3e9b6862758774fa0364e Mon Sep 17 00:00:00 2001 From: Jelle Spreeuwenberg Date: Wed, 22 Jul 2026 12:35:12 +0200 Subject: [PATCH] feat: improve vim formatting --- .../lua-config/lua/plugins/formatting.lua | 28 +++++++++++++------ .../neovim/lua-config/lua/plugins/lsp.lua | 5 ++++ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/modules/capabilities/neovim/lua-config/lua/plugins/formatting.lua b/modules/capabilities/neovim/lua-config/lua/plugins/formatting.lua index 5a63ccb..c5bbe11 100644 --- a/modules/capabilities/neovim/lua-config/lua/plugins/formatting.lua +++ b/modules/capabilities/neovim/lua-config/lua/plugins/formatting.lua @@ -1,3 +1,16 @@ +local function format_options(bufnr) + local oxfmt = vim.lsp.get_clients({ + bufnr = bufnr, + name = "oxfmt", + method = "textDocument/formatting", + })[1] + + return { + lsp_format = "fallback", + name = oxfmt and "oxfmt" or nil, + } +end + require("lz.n").load({ { "conform.nvim", @@ -7,17 +20,15 @@ require("lz.n").load({ { "f", function() - require("conform").format({ async = true, lsp_format = "fallback" }) + local options = format_options(vim.api.nvim_get_current_buf()) + options.async = true + require("conform").format(options) end, mode = "", desc = "[F]ormat buffer", }, }, after = function() - -- Conform's built-in oxfmt formatter searches upwards for - -- node_modules/.bin/oxfmt before falling back to the wrapped binary. - local oxfmt = { "oxfmt" } - require("conform").setup({ notify_on_error = true, format_on_save = function(bufnr) @@ -25,10 +36,9 @@ require("lz.n").load({ if disable_filetypes[vim.bo[bufnr].filetype] then return nil else - return { - timeout_ms = 500, - lsp_format = "fallback", - } + local options = format_options(bufnr) + options.timeout_ms = 500 + return options end end, formatters_by_ft = { diff --git a/modules/capabilities/neovim/lua-config/lua/plugins/lsp.lua b/modules/capabilities/neovim/lua-config/lua/plugins/lsp.lua index ae3e22d..e81e55c 100644 --- a/modules/capabilities/neovim/lua-config/lua/plugins/lsp.lua +++ b/modules/capabilities/neovim/lua-config/lua/plugins/lsp.lua @@ -231,7 +231,12 @@ require("lz.n").load({ vim.lsp.enable("html") vim.lsp.enable("emmet_language_server") vim.lsp.enable("oxlint") + + vim.lsp.config("oxfmt", { + filetypes = vim.list_extend({ "svelte" }, vim.lsp.config.oxfmt.filetypes), + }) vim.lsp.enable("oxfmt") + vim.lsp.enable("tailwindcss") vim.lsp.enable("rust_analyzer") vim.lsp.enable("ty")