Skip to content

Formatters

OpenCode koristi formatere specifične za jezik.

OpenCode automatski formatira datoteke nakon što su napisane ili uređene pomoću formatera specifičnih za jezik. Ovo osigurava da kod koji se generira prati stilove koda vašeg projekta.


Ugrađeno

OpenCode dolazi sa nekoliko ugrađenih formatera za popularne jezike i okvire. Ispod je lista formatera, podržanih ekstenzija datoteka i naredbi ili opcija konfiguracije koje su mu potrebne.

FormatterEkstenzijeZahtjevi
gofmt.gogofmt komanda dostupna
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix komanda dostupna
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i višeprettier zavisnost u package.json
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i višebiome.json(c) konfiguracijski fajl
zig.zig, .zonzig komanda dostupna
clang-format.c, .cpp, .h, .hpp, .ino i više.clang-format konfiguracijski fajl
ktlint.kt, .ktsktlint komanda dostupna
ruff.py, .pyiruff komanda dostupna sa konfiguracijom
rustfmt.rsrustfmt komanda dostupna
cargofmt.rscargo fmt komanda dostupna
uv.py, .pyiuv komanda dostupna
standardrb.rb, .rake, .gemspec, .rustandardrb komanda dostupna
htmlbeautifier.erb, .html.erbhtmlbeautifier komanda dostupna
air.Rair komanda dostupna
dart.dartdart komanda dostupna
ocamlformat.ml, .mliocamlformat komanda dostupna i .ocamlformat konfiguracioni fajl
terraform.tf, .tfvarsterraform komanda dostupna
gleam.bleamgleam komanda dostupna
nixfmt.nixnixfmt komanda dostupna
shfmt.sh, .bashshfmt komanda dostupna
pint.phplaravel/pint zavisnost u composer.json
ormolu.hsormolu komanda dostupna
Dakle, ako vaš projekat ima prettier u vašem package.json, OpenCode će ga automatski koristiti.

Kako radi

Kada OpenCode piše ili uređuje datoteku, on:

  1. Provjerava ekstenziju datoteke prema svim omogućenim formaterima.
  2. Pokreće odgovarajuću naredbu za formatiranje na datoteci.
  3. Automatski primjenjuje promjene formatiranja. Ovaj proces se događa u pozadini, osiguravajući da se vaši stilovi koda održavaju bez ikakvih ručnih koraka.

Konfiguriši

Možete prilagoditi formatere kroz formatter odjeljak u vašoj OpenCode konfiguraciji.

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

Svaka konfiguracija formatera podržava sljedeće:

SvojstvoVrstaOpis
disabledbooleanPostavite ovo na true da onemogućite formater
commandstring[]Naredba za pokretanje za formatiranje
environmentobjektVarijable okruženja koje treba postaviti prilikom pokretanja formatera
extensionsstring[]Ekstenzije datoteka koje ovaj formater treba da obrađuje
Pogledajmo neke primjere.

Onemogućavanje formatera

Da onemogućite sve formatere globalno, postavite formatter na false:

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

Da onemogućite specifični formater, postavite disabled na true:

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

Prilagođeni formateri

Možete nadjačati ugrađene formatere ili dodati nove navođenjem naredbe, varijabli okruženja i ekstenzija datoteke:

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"]
}
}
}

$FILE čuvar mjesta u naredbi će biti zamijenjen putanjom do datoteke koja se formatira.