diff options
Diffstat (limited to 'scripts/autoformat_doc.lua')
-rw-r--r-- | scripts/autoformat_doc.lua | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/autoformat_doc.lua b/scripts/autoformat_doc.lua new file mode 100644 index 0000000..1ea8ac4 --- /dev/null +++ b/scripts/autoformat_doc.lua @@ -0,0 +1,35 @@ +-- Format synchronously on save +vim.api.nvim_create_autocmd("BufWritePre", { + pattern = "*", + callback = function(args) + -- Disable autoformat on certain filetypes + local ignore_filetypes = { "sql", "java" } + if vim.tbl_contains(ignore_filetypes, vim.bo[args.buf].filetype) then + return + end + -- Disable with a global or buffer-local variable + if vim.g.disable_autoformat or vim.b[args.buf].disable_autoformat then + return + end + -- Disable autoformat for files in a certain path + local bufname = vim.api.nvim_buf_get_name(args.buf) + if bufname:match("/node_modules/") then + return + end + require("conform").format({ timeout_ms = 500, lsp_fallback = true, buf = args.buf }) + end, +}) + +-- Format asynchronously on save +vim.api.nvim_create_autocmd("BufWritePost", { + pattern = "*", + callback = function(args) + require("conform").format({ async = true, lsp_fallback = true, buf = args.buf }, function(err) + if not err then + vim.api.nvim_buf_call(args.buf, function() + vim.cmd.update() + end) + end + end) + end, +}) |