diff options
Diffstat (limited to 'lua/conform/formatters/injected.lua')
-rw-r--r-- | lua/conform/formatters/injected.lua | 26 |
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) |