2025-08-26 09:24:22 +01:00
|
|
|
return {
|
|
|
|
|
'stevearc/conform.nvim',
|
|
|
|
|
opts = {
|
|
|
|
|
formatters_by_ft = {
|
|
|
|
|
javascript = { "prettierd", "prettier", stop_after_first = true },
|
|
|
|
|
kulala = { "kulala-fmt" },
|
|
|
|
|
},
|
|
|
|
|
},
|
2025-08-26 10:16:22 +01:00
|
|
|
init = function()
|
|
|
|
|
local FILETYPES_TO_FORMAT_ON_SAVE = {
|
|
|
|
|
"javascript", "javascriptreact", "typescript", "typescriptreact",
|
|
|
|
|
"kulala", "lua", "go", "rust", "toml", "json", "yaml", "java" }
|
|
|
|
|
|
|
|
|
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
|
|
|
|
pattern = "*",
|
|
|
|
|
callback = function(args)
|
|
|
|
|
local ft = vim.bo[args.buf].filetype
|
|
|
|
|
|
|
|
|
|
for _, t in ipairs(FILETYPES_TO_FORMAT_ON_SAVE) do
|
|
|
|
|
if ft == t then
|
|
|
|
|
require("conform").format({
|
|
|
|
|
bufnr = args.buf,
|
|
|
|
|
timeout_ms = 500,
|
|
|
|
|
lsp_format = "fallback",
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
})
|
|
|
|
|
end
|
2025-08-26 09:24:22 +01:00
|
|
|
}
|