diff options
author | Steven Arcangeli <506791+stevearc@users.noreply.github.com> | 2024-07-19 08:46:46 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-19 08:46:46 -0700 |
commit | d60d41c34c9eacf8131685f28532e72f12f21482 (patch) | |
tree | 76a0820ccbae7c112ca4dab39882f135b4b0c64a /lua/conform/formatters | |
parent | ae213f5169d5d0c6abbe76e1438d932772fc1657 (diff) | |
parent | 54ea60d1591486e7e56183addf1f45b03244386d (diff) |
Merge pull request #491 from stevearc/stevearc-config-refactor
feat!: large rework of configuration logic
Diffstat (limited to 'lua/conform/formatters')
-rw-r--r-- | lua/conform/formatters/dcm_format.lua | 2 | ||||
-rw-r--r-- | lua/conform/formatters/injected.lua | 26 |
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) |