diff options
author | Steven Arcangeli <stevearc@stevearc.com> | 2023-08-29 16:38:35 -0700 |
---|---|---|
committer | Steven Arcangeli <stevearc@stevearc.com> | 2023-08-29 16:53:26 -0700 |
commit | 8b2a5741e07e2d6d5e8103e5e12356d3a9f0b8ba (patch) | |
tree | dc3fac67e69be48e93f910e3ab80359087dd5877 /lua/conform/init.lua | |
parent | 03a37f1b53d83af7aee10fc3ffee9f3a05d09e2e (diff) |
feat: formatter config function is passed the buffer number (#9)
Diffstat (limited to 'lua/conform/init.lua')
-rw-r--r-- | lua/conform/init.lua | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lua/conform/init.lua b/lua/conform/init.lua index d1a6849..90eedbe 100644 --- a/lua/conform/init.lua +++ b/lua/conform/init.lua @@ -47,7 +47,7 @@ local M = {} ---@type table<string, string[]|conform.FormatterList> M.formatters_by_ft = {} ----@type table<string, conform.FormatterConfig|fun(): conform.FormatterConfig> +---@type table<string, conform.FormatterConfig|fun(bufnr: integer): nil|conform.FormatterConfig> M.formatters = {} M.setup = function(opts) @@ -334,9 +334,17 @@ end ---@private ---@param formatter string +---@param bufnr? integer ---@return nil|conform.FormatterConfig -M.get_formatter_config = function(formatter) +M.get_formatter_config = function(formatter, bufnr) + if not bufnr or bufnr == 0 then + bufnr = vim.api.nvim_get_current_buf() + end + ---@type nil|conform.FormatterConfig|fun(bufnr: integer): nil|conform.FormatterConfig local config = M.formatters[formatter] + if type(config) == "function" then + config = config(bufnr) + end if not config then local ok ok, config = pcall(require, "conform.formatters." .. formatter) @@ -344,9 +352,6 @@ M.get_formatter_config = function(formatter) return nil end end - if type(config) == "function" then - config = config() - end if config.stdin == nil then config.stdin = true @@ -362,7 +367,7 @@ M.get_formatter_info = function(formatter, bufnr) if not bufnr or bufnr == 0 then bufnr = vim.api.nvim_get_current_buf() end - local config = M.get_formatter_config(formatter) + local config = M.get_formatter_config(formatter, bufnr) if not config then return { name = formatter, |