diff options
author | Steven Arcangeli <stevearc@stevearc.com> | 2023-09-10 10:49:54 -0700 |
---|---|---|
committer | Steven Arcangeli <stevearc@stevearc.com> | 2023-09-10 11:09:32 -0700 |
commit | dd5b2f2f7ca01c2f28239cbbc7f97e6f9024cd94 (patch) | |
tree | d9463fbaa332ce718c72e84dad2b485c70f38649 /scripts/autoformat_doc.lua | |
parent | 6b3dc33b0d3078d3c215c51f337f1702c57bfb8b (diff) |
feat: format_on_save and format_after_save can be functions
Diffstat (limited to 'scripts/autoformat_doc.lua')
-rw-r--r-- | scripts/autoformat_doc.lua | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/scripts/autoformat_doc.lua b/scripts/autoformat_doc.lua index 31cbec7..4880310 100644 --- a/scripts/autoformat_doc.lua +++ b/scripts/autoformat_doc.lua @@ -20,16 +20,26 @@ vim.api.nvim_create_autocmd("BufWritePre", { end, }) --- Format asynchronously on save -vim.api.nvim_create_autocmd("BufWritePost", { - pattern = "*", - callback = function(args) - require("conform").format({ async = true, lsp_fallback = true, bufnr = args.buf }, function(err) - if not err then - vim.api.nvim_buf_call(args.buf, function() - vim.cmd.update() - end) - end - end) +-- To eliminate the boilerplate, you can pass a function to format_on_save +-- and it will be called during the BufWritePre callback. +require("conform").setup({ + format_on_save = function(bufnr) + if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then + return + end + -- ...additional logic... + return { timeout_ms = 500, lsp_fallback = true } + end, +}) + +-- There is a similar affordance for format_after_save, which uses BufWritePost. +-- This is good for formatters that are too slow to run synchronously. +require("conform").setup({ + format_after_save = function(bufnr) + if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then + return + end + -- ...additional logic... + return { lsp_fallback = true } end, }) |