1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
local formatter = require("formatter")
local go = require("formatter.filetypes.go")
local util = require("formatter.util")
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 },
css = { require("formatter.filetypes.css").cssbeautify },
scss = { require("formatter.filetypes.css").cssbeautify },
go = { go.gofumpt, go.goimports },
terraform = { terraformfmt },
yaml = { require("formatter.filetypes.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",
})
|