aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lua/conform/formatters/darker.lua35
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",
+ }),
+}