return { "stevearc/conform.nvim", event = "VeryLazy", keys = { { "f", function() require("conform").format({ async = true, lsp_format = "fallback" }) end, mode = "", desc = "Format buffer", }, }, opts = { formatters_by_ft = { lua = { "stylua" }, python = { "isort", "black" }, rust = { "rustfmt" }, javascript = { "prettierd", "prettier", stop_after_first = true }, typescript = { "prettierd", "prettier", stop_after_first = true }, typescriptreact = { "prettierd", "prettier", stop_after_first = true }, css = { "prettierd", "prettier", stop_after_first = true }, html = { "prettierd", "prettier", stop_after_first = true }, typst = { "prettypst" }, xml = { "xmlformatter" }, }, format_on_save = { timeout_ms = 500, lsp_format = "fallback", }, formatters = { xmlformat = { command = "xmlformat", args = { "--selfclose", "-" }, stdin = true, }, }, }, }