Przejdź do głównej zawartości

Formatery

opencode używa formaterów specyficznych dla języka.

opencode automatycznie formatuje pliki po ich zapisaniu lub edycję przy użyciu formaterów przesyłanych dla języka. Dzięki temu wygenerowany kod będzie używany ze stylami kodu Twojego projektu.


Wbudowany

opencode zawiera kilka wbudowanych formaterów dla nauki języków i frameworków. Zawiera listę formaterów, rozszerzonych plików oraz rozszerzenia i konfiguratory, których potrzebujesz.

FormaterRozszerzeniaWymagania
gofmt.idźKomenda gofmt dostępna
ryzyko.ex, .exs, .eex, .heex, .leex, .neex, .sfaceKomenda mix dostępna
ładniejsza.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i więcejZależność prettier w package.json
biom.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i więcejbiome.json(c) plik konfiguracyjny
zyg.zig, .zonKomenda zig dostępna
formatuj brzęk.c, .cpp, .h, .hpp, .ino i więcej.clang-format plik konfiguracyjny
ktlint.kt, .ktsKomenda ktlint dostępna
kryza.py, .pyiKomenda ruff dostępna w konstrukcji
rustfmt.rsKomenda rustfmt dostępna
załadunek.rsKomenda cargo fmt dostępna
UV.py, .pyiKomenda uv dostępna
rubocop.rb, .rake, .gemspec, .ruKomenda rubocop dostępna
standardowe.rb, .rake, .gemspec, .ruKomenda standardrb dostępna
htmlupiększacz.erb, .html.erbKomenda htmlbeautifier dostępna
powietrze.RKomenda air dostępna
strzałka.dartKomenda dart dostępna
formatuj ocaml.ml, .mliDostępna opcja ocamlformat i plik konfiguracyjny .ocamlformat
terraforma.tf, .tfvarsKomenda terraform dostępna
blask.blaskKomenda gleam dostępna
nixfmt.nixKomenda nixfmt dostępna
shfmt.sh, .bashKomenda shfmt dostępna
kufel.phpZależność laravel/pint w composer.json
oxfmt (eksperymentalny).js, .jsx, .ts, .tsxwykonanie oxfmt w package.json i flaga eksperymentalna zmienna env
ormolu.hsKomenda ormolu dostępna

Jeśli więc Twój projekt zawiera prettier w package.json, opencode automatycznie przejdź do podmiote.


Jak to działa

Kiedy opencode zapisuje lub edytuje plik:

  1. Badanie pliku dotyczącego wszystkich danych formaterów.
  2. Uruchamia decyzje wykonawcze formatujące na plik.
  3. Automatycznie stosuje zmiany formatowania.

Dziesięć procesów zachodzi w tle, konieczne jest zachowanie stylów kodu bez konieczności wykonania czynności czynnościowych.


Skonfiguruj

Można dostosować formatery za pomocą sekcji formatter w konstrukcji opencode.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"formatter": {}
}

obsługiwane formatyzator Zobacz elementy:

NieruchomośćWpiszOpis
disabledbooleanUstaw tę opcję na true, aby wyłączyć formater
commandstring[]Polecenie uruchomienia formatowania
environmentobjectZmienne ustawienia do ustawień podczas uruchamiania programu formatującego
extensionsstring[]Rozszerzenia plików, które powinny opuścić ten formater

Spójrzmy na kilka przykładów.


Wyłączanie formaterów

Aby globalnie wyłączyć wszystkie formatery, ustaw formatter na false:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"formatter": false
}

Aby wyłączyć określony formater, ustaw disabled na true:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"formatter": {
"prettier": {
"disabled": true
}
}
}

Niestandardowe formatery

Może wystąpić, gdyby nastąpiło nowe, uruchomienie, zmienne udostępnienie i udostępnienie plików:

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"formatter": {
"prettier": {
"command": ["npx", "prettier", "--write", "$FILE"],
"environment": {
"NODE_ENV": "development"
},
"extensions": [".js", ".ts", ".jsx", ".tsx"]
},
"custom-markdown-formatter": {
"command": ["deno", "fmt", "$FILE"],
"extensions": [".md"]
}
}
}

Symbol zastępczy $FILE w poleceniu pochodziony z formatowanego pliku.