From 0ff1b7d32fd3e8df194ca5ebec1dab9c61fb9911 Mon Sep 17 00:00:00 2001 From: Steven Arcangeli <506791+stevearc@users.noreply.github.com> Date: Wed, 13 Mar 2024 08:43:23 -0700 Subject: fix(rustfmt): use Cargo.toml settings and default to recent edition (#328) --- lua/conform/formatters/rustfmt.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'lua/conform/formatters/rustfmt.lua') 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, } -- cgit v1.2.3-70-g09d2