52 lines
1.8 KiB
Lua
52 lines
1.8 KiB
Lua
local nixCatsUtils = require("nixCatsUtils")
|
|
|
|
local formatters = {
|
|
general = {
|
|
awk = { "awk" },
|
|
html = { "prettierd", "prettier", stop_after_first = true },
|
|
json = { "prettierd", "prettier", stop_after_first = true },
|
|
jsonc = { "prettierd", "prettier", stop_after_first = true },
|
|
markdown = { "prettierd", "prettier", stop_after_first = true },
|
|
},
|
|
c = {
|
|
c = { "clang-format" },
|
|
cpp = { "clang-format" },
|
|
},
|
|
css = { css = { "prettierd", "prettier", stop_after_first = true } },
|
|
gdscript = { gdscript = { "gdformat" } },
|
|
go = { go = { "gofmt" } },
|
|
haskell = { haskell = { "ormolu" } },
|
|
lua = { lua = { "stylua" } }, -- configured in stylua.toml
|
|
nix = { nix = { "nixfmt" } },
|
|
python = { python = { "isort", "black" } },
|
|
rust = { rust = { "rustfmt", lsp_format = "fallback" } },
|
|
shell = { bash = { "shellcheck" } },
|
|
svelte = { svelte = { "eslint_d", "prettierd", "prettier", stop_after_first = true } },
|
|
typescript = {
|
|
javascript = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
|
|
javascriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
|
|
typescript = { "eslint_d", "prettierd", "prettier", stop_after_first = true },
|
|
typescriptreact = { "eslint_d", "eslint", "prettierd", "prettier", stop_after_first = true },
|
|
},
|
|
yaml = {
|
|
-- yaml = { "prettierd", "prettier", stop_after_first = true },
|
|
},
|
|
}
|
|
|
|
local formatters_by_ft = {}
|
|
for language, language_formatters in pairs(formatters) do
|
|
if language == "general" or nixCatsUtils.enableForCategory("languages." .. language) then
|
|
for ft, ft_formatters in pairs(language_formatters) do
|
|
formatters_by_ft[ft] = ft_formatters
|
|
end
|
|
end
|
|
end
|
|
|
|
require("conform").setup({
|
|
format_after_save = {
|
|
lsp_format = "never",
|
|
timeout_ms = 500,
|
|
},
|
|
formatters_by_ft = formatters_by_ft,
|
|
})
|