diff options
| author | ja <[email protected]> | 2025-12-26 12:31:51 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-26 11:31:51 -0600 |
| commit | b0e4408ecfd1f93bc95b7b46a8df861c13ee768a (patch) | |
| tree | dd65b5102d51ddda2b1ca774ecc87a099ebb7bb0 | |
| parent | 8416db03ef34a1ecf187faa81fb5ce7fe8ee4ec7 (diff) | |
| download | opencode-b0e4408ecfd1f93bc95b7b46a8df861c13ee768a.tar.gz opencode-b0e4408ecfd1f93bc95b7b46a8df861c13ee768a.zip | |
feat: add shfmt formatter for shell scripts (#6204)
| -rw-r--r-- | packages/opencode/src/format/formatter.ts | 9 | ||||
| -rw-r--r-- | packages/web/src/content/docs/formatters.mdx | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/packages/opencode/src/format/formatter.ts b/packages/opencode/src/format/formatter.ts index 954940f8d..90c48b05c 100644 --- a/packages/opencode/src/format/formatter.ts +++ b/packages/opencode/src/format/formatter.ts @@ -313,3 +313,12 @@ export const gleam: Info = { return Bun.which("gleam") !== null }, } + +export const shfmt: Info = { + name: "shfmt", + command: ["shfmt", "-w", "$FILE"], + extensions: [".sh", ".bash"], + async enabled() { + return Bun.which("shfmt") !== null + }, +} diff --git a/packages/web/src/content/docs/formatters.mdx b/packages/web/src/content/docs/formatters.mdx index fa915f116..2c0687b8e 100644 --- a/packages/web/src/content/docs/formatters.mdx +++ b/packages/web/src/content/docs/formatters.mdx @@ -30,6 +30,7 @@ OpenCode comes with several built-in formatters for popular languages and framew | ocamlformat | .ml, .mli | `ocamlformat` command available and `.ocamlformat` config file | | terraform | .tf, .tfvars | `terraform` command available | | gleam | .gleam | `gleam` command available | +| shfmt | .sh, .bash | `shfmt` command available | | oxfmt (Experimental) | .js, .jsx, .ts, .tsx | `oxfmt` dependency in `package.json` and an [experimental env variable flag](/docs/cli/#experimental) | So if your project has `prettier` in your `package.json`, OpenCode will automatically use it. |
