aboutsummaryrefslogtreecommitdiffstats
path: root/lua/conform/init.lua
diff options
context:
space:
mode:
authorSteven Arcangeli <stevearc@stevearc.com>2023-09-15 07:21:42 -0700
committerSteven Arcangeli <stevearc@stevearc.com>2023-09-15 07:21:42 -0700
commit1a568c66f16650290fffcfbf5aefebe2d8254b83 (patch)
tree67ef209956908ebacb6f2e7c830a6317342910cf /lua/conform/init.lua
parentd3fe43167c7d96036c8c037ef1b4e03b448efbe7 (diff)
feat: format_on_save functions can return a callback as the second value
Diffstat (limited to 'lua/conform/init.lua')
-rw-r--r--lua/conform/init.lua22
1 files changed, 14 insertions, 8 deletions
diff --git a/lua/conform/init.lua b/lua/conform/init.lua
index e2ba40a..ff30686 100644
--- a/lua/conform/init.lua
+++ b/lua/conform/init.lua
@@ -84,15 +84,18 @@ M.setup = function(opts)
pattern = "*",
group = aug,
callback = function(args)
- local format_args = opts.format_on_save
+ local format_args, callback = opts.format_on_save, nil
if type(format_args) == "function" then
- format_args = format_args(args.buf)
+ format_args, callback = format_args(args.buf)
end
if format_args then
- M.format(vim.tbl_deep_extend("force", format_args, {
- buf = args.buf,
- async = false,
- }))
+ M.format(
+ vim.tbl_deep_extend("force", format_args, {
+ buf = args.buf,
+ async = false,
+ }),
+ callback
+ )
end
end,
})
@@ -109,9 +112,9 @@ M.setup = function(opts)
if vim.b[args.buf].conform_applying_formatting then
return
end
- local format_args = opts.format_after_save
+ local format_args, callback = opts.format_after_save, nil
if type(format_args) == "function" then
- format_args = format_args(args.buf)
+ format_args, callback = format_args(args.buf)
end
if format_args then
M.format(
@@ -127,6 +130,9 @@ M.setup = function(opts)
vim.b[args.buf].conform_applying_formatting = false
end)
end
+ if callback then
+ callback(err)
+ end
end
)
end