summaryrefslogtreecommitdiffstats
path: root/lua/conform/formatters
diff options
context:
space:
mode:
Diffstat (limited to 'lua/conform/formatters')
-rw-r--r--lua/conform/formatters/rustfmt.lua22
-rw-r--r--lua/conform/formatters/yew-fmt.lua21
2 files changed, 23 insertions, 20 deletions
diff --git a/lua/conform/formatters/rustfmt.lua b/lua/conform/formatters/rustfmt.lua
index 62d2d78..e33fb86 100644
--- a/lua/conform/formatters/rustfmt.lua
+++ b/lua/conform/formatters/rustfmt.lua
@@ -1,15 +1,4 @@
----@param manifest string
----@return nil|string
-local function parse_edition(manifest)
- for line in io.lines(manifest) do
- if line:match("^edition *=") then
- local edition = line:match("%d+")
- if edition then
- return edition
- end
- end
- end
-end
+local util = require("conform.util")
---@type conform.FileFormatterConfig
return {
@@ -24,14 +13,7 @@ return {
},
args = function(self, ctx)
local args = { "--emit=stdout" }
- local edition
- local manifest = vim.fs.find("Cargo.toml", { upward = true, path = ctx.dirname })[1]
- if manifest then
- edition = parse_edition(manifest)
- end
- if not edition then
- edition = self.options.default_edition
- end
+ local edition = util.parse_rust_edition(ctx.dirname) or self.options.default_edition
table.insert(args, "--edition=" .. edition)
return args
diff --git a/lua/conform/formatters/yew-fmt.lua b/lua/conform/formatters/yew-fmt.lua
new file mode 100644
index 0000000..f441fdf
--- /dev/null
+++ b/lua/conform/formatters/yew-fmt.lua
@@ -0,0 +1,21 @@
+local util = require("conform.util")
+
+---@type conform.FileFormatterConfig
+return {
+ meta = {
+ url = "https://github.com/schvv31n/yew-fmt",
+ description = "Code formatter for the Yew framework.",
+ },
+ command = "yew-fmt",
+ 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 edition = util.parse_rust_edition(ctx.dirname) or self.options.default_edition
+ table.insert(args, "--edition=" .. edition)
+
+ return args
+ end,
+}