dotfiles/lua/plugins/conform.lua
Gered 14ee4f6f0b add formatter config for yamlfix and clang-format
clang-format's built in styles REALLY all suck quite badly. how the
fuck is it possible that this tool can be made with builtin styles
that offer very little in the way of variety? jesus christ ...
2024-09-06 18:46:22 -04:00

58 lines
1.6 KiB
Lua

return {
{ -- Autoformat
'stevearc/conform.nvim',
event = { 'BufWritePre' },
cmd = { 'ConformInfo' },
keys = {
{
'<leader>f',
function()
require('conform').format { async = true, lsp_format = 'fallback' }
end,
mode = '',
desc = '[F]ormat buffer',
},
},
opts = {
notify_on_error = false,
format_on_save = function(bufnr)
-- Filetypes to apply formatting to on save. Remove from this list
-- to disable formatting on save for that filetype.
local filetypes = {
'lua',
'rust',
}
local lsp_format_opt
if filetypes[vim.bo[bufnr].filetype] then
lsp_format_opt = 'fallback'
else
lsp_format_opt = 'never'
end
return {
timeout_ms = 500,
lsp_format = lsp_format_opt,
}
end,
formatters_by_ft = {
lua = { 'stylua' },
yaml = { 'yamlfmt' },
c = { 'clang-format' },
},
formatters = {
['yamlfmt'] = {
prepend_args = { '-formatter', 'retain_line_breaks_single=true,trim_trailing_whitespace=true' },
},
-- all of the builtin clang-format styles are pretty bad IMHO. don't fallback to any.
-- unfortunately, `--fallback-style` doesn't allow inline customization like the
-- `--style` option does.
-- i really can't say that i'm impressed with clang-format overall ...
['clang-format'] = {
prepend_args = { '--style=file', '--fallback-style=none' },
},
},
},
},
}
-- vim: ts=2 sts=2 sw=2 et