summaryrefslogtreecommitdiffstats
path: root/lua/conform/formatters
diff options
context:
space:
mode:
Diffstat (limited to 'lua/conform/formatters')
-rw-r--r--lua/conform/formatters/dcm_format.lua2
-rw-r--r--lua/conform/formatters/injected.lua26
2 files changed, 15 insertions, 13 deletions
diff --git a/lua/conform/formatters/dcm_format.lua b/lua/conform/formatters/dcm_format.lua
index f2af0ac..04adf67 100644
--- a/lua/conform/formatters/dcm_format.lua
+++ b/lua/conform/formatters/dcm_format.lua
@@ -2,7 +2,7 @@
return {
meta = {
url = "https://dcm.dev/docs/cli/formatting/format/",
- description = "Formats *.dart files.",
+ description = "Formats .dart files.",
},
command = "dcm",
args = { "format", "$FILENAME" },
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)