diff options
Diffstat (limited to 'home/common/modules/neovim/config/lua/pacman/plugins/conform.lua')
-rw-r--r-- | home/common/modules/neovim/config/lua/pacman/plugins/conform.lua | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/home/common/modules/neovim/config/lua/pacman/plugins/conform.lua b/home/common/modules/neovim/config/lua/pacman/plugins/conform.lua new file mode 100644 index 0000000..ca7c0c0 --- /dev/null +++ b/home/common/modules/neovim/config/lua/pacman/plugins/conform.lua @@ -0,0 +1,43 @@ +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) + -- Disable "format_on_save lsp_fallback" for languages that don't + -- have a well standardized coding style. You can add additional + -- languages here or re-enable it for the disabled ones. + local disable_filetypes = { c = true, cpp = true } + if disable_filetypes[vim.bo[bufnr].filetype] then + return nil + else + return { + timeout_ms = 500, + lsp_format = 'fallback', + } + end + end, + formatters_by_ft = { + lua = { 'stylua' }, + -- Conform can also run multiple formatters sequentially + -- python = { "isort", "black" }, + -- + -- You can use 'stop_after_first' to run the first available formatter from the list + -- javascript = { "prettierd", "prettier", stop_after_first = true }, + }, + }, + }, +} +-- vim: ts=2 sts=2 sw=2 et |