diff options
Diffstat (limited to 'lua/conform/formatters')
-rw-r--r-- | lua/conform/formatters/rustfmt.lua | 15 |
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, } |