summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJared A. Scheel <[email protected]>2025-11-04 15:40:29 -0600
committerGitHub <[email protected]>2025-11-04 15:40:29 -0600
commit272349b8da4d33f29b9249e55d7bd4055659ba60 (patch)
tree50e0d0657a7f62fa5fbc6cee67eef76c35740391
parentfe94bb8e50ed9625e553cc7bd79d3a02889c2979 (diff)
downloadopencode-272349b8da4d33f29b9249e55d7bd4055659ba60.tar.gz
opencode-272349b8da4d33f29b9249e55d7bd4055659ba60.zip
Add support for `uv format` in formatters (#3916)
-rw-r--r--packages/opencode/src/format/formatter.ts15
-rw-r--r--packages/web/src/content/docs/formatters.mdx1
2 files changed, 16 insertions, 0 deletions
diff --git a/packages/opencode/src/format/formatter.ts b/packages/opencode/src/format/formatter.ts
index d2a9eee83..baa39906f 100644
--- a/packages/opencode/src/format/formatter.ts
+++ b/packages/opencode/src/format/formatter.ts
@@ -177,6 +177,21 @@ export const ruff: Info = {
},
}
+export const uvformat: Info = {
+ name: "uv format",
+ command: ["uv", "format", "--", "$FILE"],
+ extensions: [".py", ".pyi"],
+ async enabled() {
+ if (await ruff.enabled()) return false
+ if (Bun.which("uv") !== null) {
+ const proc = Bun.spawn(["uv", "format", "--help"], { stderr: "pipe", stdout: "pipe" })
+ const code = await proc.exited
+ return code === 0
+ }
+ return false
+ },
+}
+
export const rubocop: Info = {
name: "rubocop",
command: ["rubocop", "--autocorrect", "$FILE"],
diff --git a/packages/web/src/content/docs/formatters.mdx b/packages/web/src/content/docs/formatters.mdx
index 8853ca334..4b46a4f63 100644
--- a/packages/web/src/content/docs/formatters.mdx
+++ b/packages/web/src/content/docs/formatters.mdx
@@ -21,6 +21,7 @@ OpenCode comes with several built-in formatters for popular languages and framew
| clang-format | .c, .cpp, .h, .hpp, .ino, and [more](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` config file |
| ktlint | .kt, .kts | `ktlint` command available |
| ruff | .py, .pyi | `ruff` command available with config |
+| uv | .py, .pyi | `uv` command available |
| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` command available |
| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available |
| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` command available |