From 737bbc676035606fba7aa5adc04245233321e694 Mon Sep 17 00:00:00 2001 From: wangyang690 Date: Fri, 15 May 2026 19:12:25 +0800 Subject: [PATCH] feat(format): add stylua formatter for Lua files Add built-in StyLua formatter support for .lua files. StyLua is detected via PATH lookup and runs `stylua $FILE`. --- packages/opencode/src/format/formatter.ts | 10 ++++++++++ packages/web/src/content/docs/ar/formatters.mdx | 1 + packages/web/src/content/docs/bs/formatters.mdx | 1 + packages/web/src/content/docs/da/formatters.mdx | 1 + packages/web/src/content/docs/de/formatters.mdx | 1 + packages/web/src/content/docs/es/formatters.mdx | 1 + packages/web/src/content/docs/formatters.mdx | 1 + packages/web/src/content/docs/fr/formatters.mdx | 1 + packages/web/src/content/docs/it/formatters.mdx | 1 + packages/web/src/content/docs/ja/formatters.mdx | 1 + packages/web/src/content/docs/ko/formatters.mdx | 1 + packages/web/src/content/docs/nb/formatters.mdx | 1 + packages/web/src/content/docs/pl/formatters.mdx | 1 + packages/web/src/content/docs/pt-br/formatters.mdx | 1 + packages/web/src/content/docs/ru/formatters.mdx | 1 + packages/web/src/content/docs/th/formatters.mdx | 1 + packages/web/src/content/docs/tr/formatters.mdx | 1 + packages/web/src/content/docs/zh-cn/formatters.mdx | 1 + packages/web/src/content/docs/zh-tw/formatters.mdx | 1 + 19 files changed, 28 insertions(+) diff --git a/packages/opencode/src/format/formatter.ts b/packages/opencode/src/format/formatter.ts index 4c559631f29f..1dceefad33e0 100644 --- a/packages/opencode/src/format/formatter.ts +++ b/packages/opencode/src/format/formatter.ts @@ -402,3 +402,13 @@ export const dfmt: Info = { return [match, "-i", "$FILE"] }, } + +export const stylua: Info = { + name: "stylua", + extensions: [".lua"], + async enabled() { + const match = which("stylua") + if (!match) return false + return [match, "$FILE"] + }, +} diff --git a/packages/web/src/content/docs/ar/formatters.mdx b/packages/web/src/content/docs/ar/formatters.mdx index 22ded4b9efec..3bf80bfa9d9f 100644 --- a/packages/web/src/content/docs/ar/formatters.mdx +++ b/packages/web/src/content/docs/ar/formatters.mdx @@ -26,6 +26,7 @@ description: يستخدم OpenCode مُنسِّقات خاصة بكل لغة. | uv | .py, .pyi | يتوفر أمر `uv` | | rubocop | .rb, .rake, .gemspec, .ru | يتوفر أمر `rubocop` | | standardrb | .rb, .rake, .gemspec, .ru | يتوفر أمر `standardrb` | +| stylua | .lua | يتوفر أمر `stylua` | | htmlbeautifier | .erb, .html.erb | يتوفر أمر `htmlbeautifier` | | air | .R | يتوفر أمر `air` | | dart | .dart | يتوفر أمر `dart` | diff --git a/packages/web/src/content/docs/bs/formatters.mdx b/packages/web/src/content/docs/bs/formatters.mdx index af0b103ef5b7..319fcb07f724 100644 --- a/packages/web/src/content/docs/bs/formatters.mdx +++ b/packages/web/src/content/docs/bs/formatters.mdx @@ -24,6 +24,7 @@ OpenCode dolazi sa nekoliko ugrađenih formatera za popularne jezike i okvire. I | cargofmt | .rs | `cargo fmt` komanda dostupna | | uv | .py, .pyi | `uv` komanda dostupna || rubocop | .rb, .rake, .gemspec, .ru | `rubocop` komanda dostupna | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` komanda dostupna | +| stylua | .lua | `stylua` komanda dostupna | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier` komanda dostupna | | air | .R | `air` komanda dostupna | | dart | .dart | `dart` komanda dostupna | diff --git a/packages/web/src/content/docs/da/formatters.mdx b/packages/web/src/content/docs/da/formatters.mdx index 33a2d6ff3add..872bc00f26fc 100644 --- a/packages/web/src/content/docs/da/formatters.mdx +++ b/packages/web/src/content/docs/da/formatters.mdx @@ -26,6 +26,7 @@ OpenCode leveres med flere indbyggede formatere til populære sprog og rammer. N | uv | .py,.pyi | `uv` kommando tilgængelig | | rubocop | .rb,.rake,.gemspec,.ru | `rubocop` kommando tilgængelig | | standardrb | .rb,.rake,.gemspec,.ru | `standardrb` kommando tilgængelig | +| stylua | .lua | `stylua` kommando tilgængelig | | htmlbeautifier | .erb,.html.erb | `htmlbeautifier` kommando tilgængelig | | luft | .R | `air` kommando tilgængelig | | dart | .dart | `dart` kommando tilgængelig | diff --git a/packages/web/src/content/docs/de/formatters.mdx b/packages/web/src/content/docs/de/formatters.mdx index b50a91f7438a..41a3555f93d9 100644 --- a/packages/web/src/content/docs/de/formatters.mdx +++ b/packages/web/src/content/docs/de/formatters.mdx @@ -26,6 +26,7 @@ OpenCode verfügt über mehrere integrierte Formatierer für gängige Sprachen u | uv | .py, .pyi | `uv`-Befehl verfügbar | | rubocop | .rb, .rake, .gemspec, .ru | `rubocop`-Befehl verfügbar | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb`-Befehl verfügbar | +| stylua | .lua | `stylua`-Befehl verfügbar | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier`-Befehl verfügbar | | air | .R | `air`-Befehl verfügbar | | dart | .dart | `dart`-Befehl verfügbar | diff --git a/packages/web/src/content/docs/es/formatters.mdx b/packages/web/src/content/docs/es/formatters.mdx index c17baf6e16c1..83d6acb17415 100644 --- a/packages/web/src/content/docs/es/formatters.mdx +++ b/packages/web/src/content/docs/es/formatters.mdx @@ -26,6 +26,7 @@ OpenCode viene con varios formateadores integrados para lenguajes y marcos popul | uv | .py, .pyi | Comando `uv` disponible | | rubocop | .rb, .rake, .gemspec, .ru | Comando `rubocop` disponible | | standardrb | .rb, .rake, .gemspec, .ru | Comando `standardrb` disponible | +| stylua | .lua | Comando `stylua` disponible | | htmlbeautifier | .erb, .html.erb | Comando `htmlbeautifier` disponible | | air | .R | Comando `air` disponible | | dart | .dart | Comando `dart` disponible | diff --git a/packages/web/src/content/docs/formatters.mdx b/packages/web/src/content/docs/formatters.mdx index 58b63fa34888..de1c9637e858 100644 --- a/packages/web/src/content/docs/formatters.mdx +++ b/packages/web/src/content/docs/formatters.mdx @@ -36,6 +36,7 @@ OpenCode comes with several built-in formatters for popular languages and framew | rustfmt | .rs | `rustfmt` command available | | shfmt | .sh, .bash | `shfmt` command available | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available | +| stylua | .lua | `stylua` command available | | terraform | .tf, .tfvars | `terraform` command available | | uv | .py, .pyi | `uv` command available | | zig | .zig, .zon | `zig` command available | diff --git a/packages/web/src/content/docs/fr/formatters.mdx b/packages/web/src/content/docs/fr/formatters.mdx index 96b5911efed9..436716a93cd9 100644 --- a/packages/web/src/content/docs/fr/formatters.mdx +++ b/packages/web/src/content/docs/fr/formatters.mdx @@ -26,6 +26,7 @@ OpenCode est livré avec plusieurs formateurs intégrés pour les langages et fr | uv | .py, .pyi | Commande `uv` disponible | | rubocop | .rb, .rake, .gemspec, .ru | Commande `rubocop` disponible | | standardrb | .rb, .rake, .gemspec, .ru | Commande `standardrb` disponible | +| stylua | .lua | Commande `stylua` disponible | | htmlbeautifier | .erb, .html.erb | Commande `htmlbeautifier` disponible | | air | .R | Commande `air` disponible | | dart | .dart | Commande `dart` disponible | diff --git a/packages/web/src/content/docs/it/formatters.mdx b/packages/web/src/content/docs/it/formatters.mdx index 58e4c60ed03a..b559e6889a42 100644 --- a/packages/web/src/content/docs/it/formatters.mdx +++ b/packages/web/src/content/docs/it/formatters.mdx @@ -36,6 +36,7 @@ OpenCode include diversi formattatori integrati per linguaggi e framework popola | rustfmt | .rs | comando `rustfmt` disponibile | | shfmt | .sh, .bash | comando `shfmt` disponibile | | standardrb | .rb, .rake, .gemspec, .ru | comando `standardrb` disponibile | +| stylua | .lua | comando `stylua` disponibile | | terraform | .tf, .tfvars | comando `terraform` disponibile | | uv | .py, .pyi | comando `uv` disponibile | | zig | .zig, .zon | comando `zig` disponibile | diff --git a/packages/web/src/content/docs/ja/formatters.mdx b/packages/web/src/content/docs/ja/formatters.mdx index 8769b9760d1e..ea9092af3fb8 100644 --- a/packages/web/src/content/docs/ja/formatters.mdx +++ b/packages/web/src/content/docs/ja/formatters.mdx @@ -36,6 +36,7 @@ OpenCode には、一般的な言語およびフレームワーク用のいく | rustfmt | .rs | `rustfmt` command available | | shfmt | .sh, .bash | `shfmt` command available | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` command available | +| stylua | .lua | `stylua` command available | | terraform | .tf, .tfvars | `terraform` command available | | uv | .py, .pyi | `uv` command available | | zig | .zig, .zon | `zig` command available | diff --git a/packages/web/src/content/docs/ko/formatters.mdx b/packages/web/src/content/docs/ko/formatters.mdx index d2b214235323..095a29a25a37 100644 --- a/packages/web/src/content/docs/ko/formatters.mdx +++ b/packages/web/src/content/docs/ko/formatters.mdx @@ -36,6 +36,7 @@ OpenCode는 주요 언어와 프레임워크를 위한 여러 내장 포매터 | rustfmt | .rs | `rustfmt` 명령 사용 가능 | | shfmt | .sh, .bash | `shfmt` 명령 사용 가능 | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` 명령 사용 가능 | +| stylua | .lua | `stylua` 명령 사용 가능 | | terraform | .tf, .tfvars | `terraform` 명령 사용 가능 | | uv | .py, .pyi | `uv` 명령 사용 가능 | | zig | .zig, .zon | `zig` 명령 사용 가능 | diff --git a/packages/web/src/content/docs/nb/formatters.mdx b/packages/web/src/content/docs/nb/formatters.mdx index 9619c1470aac..4c34bb5b0c8e 100644 --- a/packages/web/src/content/docs/nb/formatters.mdx +++ b/packages/web/src/content/docs/nb/formatters.mdx @@ -26,6 +26,7 @@ OpenCode kommer med flere innebygde formattere for populære språk og rammeverk | uv | .py, .pyi | `uv` kommando tilgjengelig | | rubocop | .rb, .rake, .gemspec, .ru | `rubocop` kommando tilgjengelig | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` kommando tilgjengelig | +| stylua | .lua | `stylua` kommando tilgjengelig | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier` kommando tilgjengelig | | air | .R | `air` kommando tilgjengelig | | dart | .dart | `dart` kommando tilgjengelig | diff --git a/packages/web/src/content/docs/pl/formatters.mdx b/packages/web/src/content/docs/pl/formatters.mdx index 593e407f4f64..63e1c10e8d8d 100644 --- a/packages/web/src/content/docs/pl/formatters.mdx +++ b/packages/web/src/content/docs/pl/formatters.mdx @@ -26,6 +26,7 @@ OpenCode zawiera kilka wbudowanych formaterów dla popularnych języków i frame | uv | .py, .pyi | Dostępne polecenie `uv` | | rubocop | .rb, .rake, .gemspec, .ru | Dostępne polecenie `rubocop` | | standardrb | .rb, .rake, .gemspec, .ru | Dostępne polecenie `standardrb` | +| stylua | .lua | Dostępne polecenie `stylua` | | htmlbeautifier | .erb, .html.erb | Dostępne polecenie `htmlbeautifier` | | air | .R | Dostępne polecenie `air` | | dart | .dart | Dostępne polecenie `dart` | diff --git a/packages/web/src/content/docs/pt-br/formatters.mdx b/packages/web/src/content/docs/pt-br/formatters.mdx index 65fb5d2e60a6..b3c7084a29a5 100644 --- a/packages/web/src/content/docs/pt-br/formatters.mdx +++ b/packages/web/src/content/docs/pt-br/formatters.mdx @@ -26,6 +26,7 @@ O opencode vem com vários formatadores integrados para linguagens e frameworks | uv | .py, .pyi | Comando `uv` disponível | | rubocop | .rb, .rake, .gemspec, .ru | Comando `rubocop` disponível | | standardrb | .rb, .rake, .gemspec, .ru | Comando `standardrb` disponível | +| stylua | .lua | Comando `stylua` disponível | | htmlbeautifier | .erb, .html.erb | Comando `htmlbeautifier` disponível | | air | .R | Comando `air` disponível | | dart | .dart | Comando `dart` disponível | diff --git a/packages/web/src/content/docs/ru/formatters.mdx b/packages/web/src/content/docs/ru/formatters.mdx index ec7730483f8c..f367202505d9 100644 --- a/packages/web/src/content/docs/ru/formatters.mdx +++ b/packages/web/src/content/docs/ru/formatters.mdx @@ -26,6 +26,7 @@ opencode поставляется с несколькими встроенным | uv | .py, .pyi | Доступна команда `uv` | | rubocop | .rb, .rake, .gemspec, .ru | Доступна команда `rubocop` | | standardrb | .rb, .rake, .gemspec, .ru | Доступна команда `standardrb` | +| stylua | .lua | Доступна команда `stylua` | | htmlbeautifier | .erb, .html.erb | Доступна команда `htmlbeautifier` | | air | .R | Доступна команда `air` | | dart | .dart | Доступна команда `dart` | diff --git a/packages/web/src/content/docs/th/formatters.mdx b/packages/web/src/content/docs/th/formatters.mdx index 8b6122ca6963..a31072c43a55 100644 --- a/packages/web/src/content/docs/th/formatters.mdx +++ b/packages/web/src/content/docs/th/formatters.mdx @@ -26,6 +26,7 @@ OpenCode มาพร้อมกับฟอร์แมตเตอร์ใ | uv | .py, .pyi | `uv` คำสั่งใช้ได้ | | rubocop | .rb, .rake, .gemspec, .ru | `rubocop` คำสั่งใช้ได้ | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` คำสั่งใช้ได้ | +| stylua | .lua | `stylua` คำสั่งใช้ได้ | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier` คำสั่งใช้ได้ | | air | .r | `air` คำสั่งใช้ได้ | | dart | .dart | `dart` คำสั่งใช้ได้ | diff --git a/packages/web/src/content/docs/tr/formatters.mdx b/packages/web/src/content/docs/tr/formatters.mdx index 34311baa7a9d..4e2cc2691352 100644 --- a/packages/web/src/content/docs/tr/formatters.mdx +++ b/packages/web/src/content/docs/tr/formatters.mdx @@ -26,6 +26,7 @@ opencode, popüler diller ve çerçeveler için çeşitli yerleşik biçimlendir | uv | .py, .pyi | `uv` komutu mevcut | | rubocop | .rb, .rake, .gemspec, .ru | `rubocop` komutu mevcut | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` komutu mevcut | +| stylua | .lua | `stylua` komutu mevcut | | htmlbeautifier | .erb, .html.erb | `htmlbeautifier` komutu mevcut | | air | .R | `air` komutu mevcut | | dart | .dart | `dart` komutu mevcut | diff --git a/packages/web/src/content/docs/zh-cn/formatters.mdx b/packages/web/src/content/docs/zh-cn/formatters.mdx index 1f4035fda6b5..75d0a8c15707 100644 --- a/packages/web/src/content/docs/zh-cn/formatters.mdx +++ b/packages/web/src/content/docs/zh-cn/formatters.mdx @@ -36,6 +36,7 @@ OpenCode 内置了多种适用于主流语言和框架的格式化工具。下 | rustfmt | .rs | `rustfmt` 命令可用 | | shfmt | .sh, .bash | `shfmt` 命令可用 | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` 命令可用 | +| stylua | .lua | `stylua` 命令可用 | | terraform | .tf, .tfvars | `terraform` 命令可用 | | uv | .py, .pyi | `uv` 命令可用 | | zig | .zig, .zon | `zig` 命令可用 | diff --git a/packages/web/src/content/docs/zh-tw/formatters.mdx b/packages/web/src/content/docs/zh-tw/formatters.mdx index bb462a66d3e4..51e2d420d408 100644 --- a/packages/web/src/content/docs/zh-tw/formatters.mdx +++ b/packages/web/src/content/docs/zh-tw/formatters.mdx @@ -36,6 +36,7 @@ OpenCode 內建了多種適用於主流語言和框架的格式化器。下表 | rustfmt | .rs | `rustfmt` 指令可用 | | shfmt | .sh, .bash | `shfmt` 指令可用 | | standardrb | .rb, .rake, .gemspec, .ru | `standardrb` 指令可用 | +| stylua | .lua | `stylua` 指令可用 | | terraform | .tf, .tfvars | `terraform` 指令可用 | | uv | .py, .pyi | `uv` 指令可用 | | zig | .zig, .zon | `zig` 指令可用 |