aboutsummaryrefslogtreecommitdiffstats
path: root/lua/conform
diff options
context:
space:
mode:
Diffstat (limited to 'lua/conform')
-rw-r--r--lua/conform/formatters/rustfmt.lua15
1 files changed, 14 insertions, 1 deletions
diff --git a/lua/conform/formatters/rustfmt.lua b/lua/conform/formatters/rustfmt.lua
index d8f0f19..34fb09b 100644
--- a/lua/conform/formatters/rustfmt.lua
+++ b/lua/conform/formatters/rustfmt.lua
@@ -5,5 +5,18 @@ return {
description = "A tool for formatting rust code according to style guidelines.",
},
command = "rustfmt",
- args = { "--emit=stdout" },
+ options = {
+ -- The default edition of Rust to use when no Cargo.toml file is found
+ default_edition = "2021",
+ },
+ args = function(self, ctx)
+ local args = { "--emit=stdout" }
+ local manifest = vim.fs.find("Cargo.toml", { upward = true, path = ctx.dirname })[1]
+ if manifest then
+ table.insert(args, "--manifest-path=" .. manifest)
+ elseif self.options.default_edition then
+ table.insert(args, "--edition=" .. self.options.default_edition)
+ end
+ return args
+ end,
}