Gered
14ee4f6f0b
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 ...
58 lines
1.6 KiB
Lua
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
|