diff options
Diffstat (limited to 'lua/simenandre/plugins/conform.lua')
| -rw-r--r-- | lua/simenandre/plugins/conform.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lua/simenandre/plugins/conform.lua b/lua/simenandre/plugins/conform.lua new file mode 100644 index 0000000..ad86bfe --- /dev/null +++ b/lua/simenandre/plugins/conform.lua @@ -0,0 +1,44 @@ +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 } + local lsp_format_opt + if disable_filetypes[vim.bo[bufnr].filetype] then + lsp_format_opt = "never" + else + lsp_format_opt = "fallback" + end + return { + timeout_ms = 500, + lsp_format = lsp_format_opt, + } + 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 }, + }, + }, + }, +} |
