Gå til indhold

Formatere

OpenCode bruger sprogspecifikke formatere.

OpenCode formaterer automatisk filer, efter de er skrevet eller redigeret ved hjælp af sprogspecifikke formatere. Dette sikrer, at den kode, der genereres, følger kodestilene for dit projekt.


Indbygget

OpenCode leveres med flere indbyggede formatere til populære sprog og rammer. Nedenfor er en liste over de formatere, understøttede filtypenavne og kommandoer eller konfigurationsmuligheder, der har brug for.

FormaterUdvidelserKrav
gofmt.gogofmt kommando tilgængelig
blande.ex,.exs,.eex,.heex,.leex,.neex,.sfacemix kommando tilgængelig
smukkere.js,.jsx,.ts,.tsx,.html,.css,.md,.json,.yaml og moreprettier afhængighed i package.json
biome.js,.jsx,.ts,.tsx,.html,.css,.md,.json,.yaml og morebiome.json(c) konfigurationsfil
zig.zig,.zonzig kommando tilgængelig
klang-format.c,.cpp,.h,.hpp,.ino og more.clang-format konfigurationsfil
ktlint.kt,.ktsktlint kommando tilgængelig
ruff.py,.pyiruff kommando tilgængelig med konfiguration
rustfmt.rsrustfmt kommando tilgængelig
cargofmt.rscargo fmt kommando tilgængelig
uv.py,.pyiuv kommando tilgængelig
rubocop.rb,.rake,.gemspec,.rurubocop kommando tilgængelig
standardrb.rb,.rake,.gemspec,.rustandardrb kommando tilgængelig
htmlbeautifier.erb,.html.erbhtmlbeautifier kommando tilgængelig
luft.Rair kommando tilgængelig
dart.dartdart kommando tilgængelig
ocamlformat.ml,.mliocamlformat kommando tilgængelig og .ocamlformat config fil
terraform.tf,.tfvarsterraform kommando tilgængelig
glimt.glimtgleam kommando tilgængelig
nixfmt.nixnixfmt kommando tilgængelig
shfmt.sh,.bashshfmt kommando tilgængelig
pint.phplaravel/pint afhængighed i composer.json
oxfmt (Eksperimentel).js,.jsx,.ts,.tsxoxfmt afhængighed i package.json og en experimental env variable flag
ormolu.hsormolu kommando tilgængelig

Så hvis dit projekt har prettier i din package.json, vil OpenCode automatisk bruge det.


Sådan fungerer det

Når OpenCode skriver eller redigerer en fil, vil det:

  1. Kontrollerer filtypenavnet mod alle aktiverede formatere.
  2. Kører den relevante formateringskommando på filen.
  3. Anvender formateringsændringerne automatisk.

Denne proces sker i baggrunden, hvilket sikrer, at dine kodestile vedligeholdes uden nogen manuelle trin.


Konfigurer

Du kan tilpasse formatere gennem afsnittet formatter i din OpenCode-konfiguration.

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

Hver formateringskonfiguration understøtter følgende:

EjendomSkrivBeskrivelse
disabledbooleanIndstil dette til true for at deaktivere formateringsværktøjet
commandstring[]Kommandoen til at køre for formatering
environmentobjectMiljøvariabler, der skal indstilles, når formateringsværktøjet køres
extensionsstring[]Filtypenavne, som denne formaterer skal håndtere

Lad os se på nogle eksempler.


Deaktivering af formatere

For at deaktivere alle formatere globalt, skal du indstille formatter til false:

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

For at deaktivere en specifik formatter, skal du indstille disabled til true:

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

Brugerdefinerede formatere

Du kan tilsidesætte de indbyggede formattere eller tilføje nye ved at angive kommandoen, miljøvariabler og filtypenavne:

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 pladsholderen i kommandoen vil blive erstattet med stien til filen, der formateres.