aboutsummaryrefslogtreecommitdiffstats
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.lua26
1 files changed, 14 insertions, 12 deletions
diff --git a/lua/conform/formatters/injected.lua b/lua/conform/formatters/injected.lua
index 4dbf1eb..bd3313b 100644
--- a/lua/conform/formatters/injected.lua
+++ b/lua/conform/formatters/injected.lua
@@ -136,12 +136,6 @@ return {
-- (defaults to the value from formatters_by_ft)
lang_to_formatters = {},
},
- condition = function(self, ctx)
- local ok, parser = pcall(vim.treesitter.get_parser, ctx.buf)
- -- Require Neovim 0.9 because the treesitter API has changed significantly
- ---@diagnostic disable-next-line: invisible
- return ok and parser._injection_query and vim.fn.has("nvim-0.9") == 1
- end,
format = function(self, ctx, lines, callback)
local conform = require("conform")
local errors = require("conform.errors")
@@ -284,13 +278,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)