diff options
Diffstat (limited to 'lua')
-rw-r--r-- | lua/conform/formatters/darker.lua | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lua/conform/formatters/darker.lua b/lua/conform/formatters/darker.lua new file mode 100644 index 0000000..5f47e6b --- /dev/null +++ b/lua/conform/formatters/darker.lua @@ -0,0 +1,35 @@ +local util = require("conform.util") +---@type conform.FileFormatterConfig +return { + meta = { + url = "https://github.com/akaihola/darker", + description = "Run black only on changed lines.", + }, + command = "darker", + args = function(ctx) + -- make sure pre-save doesn't lose changes while post-save respects + -- the revision setting potentially set in pyproject.toml + if vim.bo[ctx.buf].modified then + return { + "--quiet", + "--no-color", + "--stdout", + "--revision", + "HEAD..:STDIN:", + "--stdin-filename", + "$FILENAME", + } + else + return { + "--quiet", + "--no-color", + "--stdout", + "$FILENAME", + } + end + end, + cwd = util.root_file({ + -- https://github.com/akaihola/darker#customizing-darker-black-isort-flynt-and-linter-behavior + "pyproject.toml", + }), +} |