From aada09c9cfea38187966ce47f34b9008e1104d21 Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Tue, 26 Sep 2023 09:34:49 -0700 Subject: feat: another utility for extending formatter arguments --- doc/recipes.md | 3 +++ lua/conform/util.lua | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/doc/recipes.md b/doc/recipes.md index 5aeaf47..66bc662 100644 --- a/doc/recipes.md +++ b/doc/recipes.md @@ -191,4 +191,7 @@ local deno_fmt = require("conform.formatters.deno_fmt") require("conform").formatters.deno_fmt = vim.tbl_deep_extend('force', deno_fmt, { args = util.extend_args(deno_fmt.args, { "--use-tabs" }, { append = true }) }) + +-- There is also a utility to modify a formatter in-place +util.add_formatter_args(require("conform.formatters.prettier"), { "--tab", "--indent", "2" }) ``` diff --git a/lua/conform/util.lua b/lua/conform/util.lua index 5813736..959e88c 100644 --- a/lua/conform/util.lua +++ b/lua/conform/util.lua @@ -114,4 +114,18 @@ M.extend_args = function(args, extra_args, opts) end end +---@param formatter conform.FormatterConfig +---@param extra_args string|string[]|fun(ctx: conform.Context): string|string[] +---@param opts? { append?: boolean } +---@example +--- local util = require("conform.util") +--- local prettier = require("conform.formatters.prettier") +--- util.add_formatter_args(prettier, { "--tab", "--indent", "2" }) +M.add_formatter_args = function(formatter, extra_args, opts) + formatter.args = M.extend_args(formatter.args, extra_args, opts) + if formatter.range_args then + formatter.range_args = M.extend_args(formatter.range_args, extra_args, opts) + end +end + return M -- cgit v1.2.3-70-g09d2