aboutsummaryrefslogtreecommitdiff
path: root/lua/kickstart/plugins/conform.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/kickstart/plugins/conform.lua')
-rw-r--r--lua/kickstart/plugins/conform.lua39
1 files changed, 39 insertions, 0 deletions
diff --git a/lua/kickstart/plugins/conform.lua b/lua/kickstart/plugins/conform.lua
new file mode 100644
index 0000000..e7fc728
--- /dev/null
+++ b/lua/kickstart/plugins/conform.lua
@@ -0,0 +1,39 @@
+return {
+ { -- Autoformat
+ 'stevearc/conform.nvim',
+ event = { 'BufWritePre' },
+ cmd = { 'ConformInfo' },
+ keys = {
+ {
+ '<leader>f',
+ function()
+ require('conform').format { async = true, lsp_fallback = true }
+ 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 }
+ return {
+ timeout_ms = 500,
+ lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype],
+ }
+ 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