local formatter = require("formatter") local go = require("formatter.filetypes.go") local util = require("formatter.util") local function yamlfmt() return { exe = "yamlfmt" } end local function terraformfmt() return { exe = "terraform", args = { "fmt", "-", }, stdin = true, } end formatter.setup({ filetype = { nix = { require("formatter.filetypes.nix").alejandra }, lua = { require("formatter.filetypes.lua").stylua }, fish = { require("formatter.filetypes.fish").fishindent }, javascript = { require("formatter.filetypes.javascript").prettier }, go = { go.gofumpt, go.goimports }, terraform = { terraformfmt }, yaml = { yamlfmt }, }, ["*"] = { require("formatter.filetypes.any").remove_trailing_whitespace, }, }) local augroup = vim.api.nvim_create_augroup local autocmd = vim.api.nvim_create_autocmd augroup("__formatter__", { clear = true }) autocmd("BufWritePost", { group = "__formatter__", command = ":FormatWrite", })