Procházet zdrojové kódy

core: improve Rust formatter detection and add cargo fmt support

Dax Raad před 1 měsícem
rodič
revize
cdd6ea514b
1 změnil soubory, kde provedl 18 přidání a 1 odebrání
  1. 18 1
      packages/opencode/src/format/formatter.ts

+ 18 - 1
packages/opencode/src/format/formatter.ts

@@ -337,6 +337,23 @@ export const rustfmt: Info = {
   command: ["rustfmt", "$FILE"],
   extensions: [".rs"],
   async enabled() {
-    return Bun.which("rustfmt") !== null
+    if (!Bun.which("rustfmt")) return false
+    const configs = ["rustfmt.toml", ".rustfmt.toml"]
+    for (const config of configs) {
+      const found = await Filesystem.findUp(config, Instance.directory, Instance.worktree)
+      if (found.length > 0) return true
+    }
+    return false
+  },
+}
+
+export const cargofmt: Info = {
+  name: "cargo fmt",
+  command: ["cargo", "fmt", "--", "$FILE"],
+  extensions: [".rs"],
+  async enabled() {
+    if (!Bun.which("cargo")) return false
+    const found = await Filesystem.findUp("Cargo.toml", Instance.directory, Instance.worktree)
+    return found.length > 0
   },
 }