feat: improve vim formatting

This commit is contained in:
2026-07-22 12:35:12 +02:00
parent a06b592031
commit 4f8af808b1
2 changed files with 24 additions and 9 deletions
@@ -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({ require("lz.n").load({
{ {
"conform.nvim", "conform.nvim",
@@ -7,17 +20,15 @@ require("lz.n").load({
{ {
"<leader>f", "<leader>f",
function() 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, end,
mode = "", mode = "",
desc = "[F]ormat buffer", desc = "[F]ormat buffer",
}, },
}, },
after = function() 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({ require("conform").setup({
notify_on_error = true, notify_on_error = true,
format_on_save = function(bufnr) format_on_save = function(bufnr)
@@ -25,10 +36,9 @@ require("lz.n").load({
if disable_filetypes[vim.bo[bufnr].filetype] then if disable_filetypes[vim.bo[bufnr].filetype] then
return nil return nil
else else
return { local options = format_options(bufnr)
timeout_ms = 500, options.timeout_ms = 500
lsp_format = "fallback", return options
}
end end
end, end,
formatters_by_ft = { formatters_by_ft = {
@@ -231,7 +231,12 @@ require("lz.n").load({
vim.lsp.enable("html") vim.lsp.enable("html")
vim.lsp.enable("emmet_language_server") vim.lsp.enable("emmet_language_server")
vim.lsp.enable("oxlint") 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("oxfmt")
vim.lsp.enable("tailwindcss") vim.lsp.enable("tailwindcss")
vim.lsp.enable("rust_analyzer") vim.lsp.enable("rust_analyzer")
vim.lsp.enable("ty") vim.lsp.enable("ty")