return { 'stevearc/conform.nvim', opts = { formatters_by_ft = { javascript = { "prettierd", "prettier", stop_after_first = true }, kulala = { "kulala-fmt" }, }, }, 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 }