summaryrefslogtreecommitdiffstats
path: root/lua/conform/formatters/injected.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/conform/formatters/injected.lua')
-rw-r--r--lua/conform/formatters/injected.lua20
1 files changed, 14 insertions, 6 deletions
diff --git a/lua/conform/formatters/injected.lua b/lua/conform/formatters/injected.lua
index 4dbf1eb..6cfd387 100644
--- a/lua/conform/formatters/injected.lua
+++ b/lua/conform/formatters/injected.lua
@@ -284,13 +284,21 @@ return {
---@type string[]
local formatter_names
if type(ft_formatters) == "function" then
- formatter_names = ft_formatters(ctx.buf)
- else
- local formatters = require("conform").resolve_formatters(ft_formatters, ctx.buf, false)
- formatter_names = vim.tbl_map(function(f)
- return f.name
- end, formatters)
+ ft_formatters = ft_formatters(ctx.buf)
end
+ local stop_after_first = ft_formatters.stop_after_first
+ if stop_after_first == nil then
+ stop_after_first = conform.default_format_opts.stop_after_first
+ end
+ if stop_after_first == nil then
+ stop_after_first = false
+ end
+
+ local formatters =
+ conform.resolve_formatters(ft_formatters, ctx.buf, false, stop_after_first)
+ formatter_names = vim.tbl_map(function(f)
+ return f.name
+ end, formatters)
local idx = num_format
log.debug("Injected format %s:%d:%d: %s", lang, start_lnum, end_lnum, formatter_names)
log.trace("Injected format lines %s", input_lines)