kickstart.nvim/lua/custom/plugins/formatting.lua

42 lines
926 B
Lua
Executable File

return {
'stevearc/conform.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'WhoIsSethDaniel/mason-tool-installer.nvim',
},
event = { 'BufReadPre', 'BufNewFile' },
opts = function()
local formatters_by_ft = {
lua = { 'stylua' },
python = function(bufnr)
if require('conform').get_formatter_info('ruff_format', bufnr).available then
return { 'isort', 'ruff_format', 'ruff_fix' }
else
return { 'isort', 'black' }
end
end,
go = { 'gofumpt', 'goimports' },
}
require('conform').setup({
formatters_by_ft = formatters_by_ft,
format_on_save = {
lsp_fallback = true,
timeout_ms = 500,
},
})
require('mason-tool-installer').setup({
ensure_installed = {
'stylua',
'ruff',
'isort',
'black',
'gofumpt',
'goimports',
},
})
end,
}