Gå til innholdet

Formattere

OpenCode bruker språkspesifikke formattere.

OpenCode formaterer automatisk filer etter at de er skrevet eller redigert ved hjelp av språkspesifikke formattere. Dette sikrer at koden som genereres følger kodestilene til prosjektet ditt.


Innebygde formattere

OpenCode kommer med flere innebygde formattere for populære språk og rammeverk. Nedenfor er en liste over formattere, støttede filendelser og kommandoer eller konfigurasjonsalternativer den krever.

FormatterFilendelserKrav
gofmt.gogofmt kommando tilgjengelig
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix kommando tilgjengelig
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og flereprettier avhengighet i package.json
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og flerebiome.json(c) konfigurasjonsfil
zig.zig, .zonzig kommando tilgjengelig
clang-format.c, .cpp, .h, .hpp, .ino og flere.clang-format konfigurasjonsfil
ktlint.kt, .ktsktlint kommando tilgjengelig
ruff.py, .pyiruff kommando tilgjengelig med config
rustfmt.rsrustfmt kommando tilgjengelig
cargofmt.rscargo fmt kommando tilgjengelig
uv.py, .pyiuv kommando tilgjengelig
rubocop.rb, .rake, .gemspec, .rurubocop kommando tilgjengelig
standardrb.rb, .rake, .gemspec, .rustandardrb kommando tilgjengelig
htmlbeautifier.erb, .html.erbhtmlbeautifier kommando tilgjengelig
air.Rair kommando tilgjengelig
dart.dartdart kommando tilgjengelig
ocamlformat.ml, .mliocamlformat kommando tilgjengelig og .ocamlformat konfigurasjonsfil
terraform.tf, .tfvarsterraform kommando tilgjengelig
gleam.gleamgleam kommando tilgjengelig
nixfmt.nixnixfmt kommando tilgjengelig
shfmt.sh, .bashshfmt kommando tilgjengelig
pint.phplaravel/pint avhengighet i composer.json
oxfmt (Eksperimentell).js, .jsx, .ts, .tsxoxfmt avhengighet i package.json og et eksperimentelt env variabel flagg
ormolu.hsormolu kommando tilgjengelig

Så hvis prosjektet ditt har prettier i package.json, vil OpenCode automatisk bruke det.


Slik fungerer det

Når OpenCode skriver eller redigerer en fil, gjør den:

  1. Kontrollerer filtypen mot alle aktiverte formattere.
  2. Kjører riktig formateringskommando på filen.
  3. Bruker formateringsendringene automatisk.

Denne prosessen skjer i bakgrunnen, og sikrer at kodestilene dine opprettholdes uten noen manuelle trinn.


Konfigurasjon

Du kan tilpasse formattere gjennom formatter-delen i OpenCode-konfigurasjonen.

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

Hver formateringskonfigurasjon støtter følgende:

EgenskapTypeBeskrivelse
disabledbooleanSett dette til true for å deaktivere formatteren
commandstring[]Kommandoen som skal kjøres for formatering
environmentobjectMiljøvariabler som skal settes når formateringsverktøyet kjøres
extensionsstring[]Filendelser denne formatteren skal håndtere

La oss se på noen eksempler.


Deaktivering av formattere

For å deaktivere alle formattere globalt, sett formatter til false:

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

For å deaktivere en spesifikk formatter, sett disabled til true:

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

Egendefinerte formattere

Du kan overstyre de innebygde formatterne eller legge til nye ved å spesifisere kommandoen, miljøvariablene og filtypene:

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

Plassholderen $FILE i kommandoen vil bli erstattet med banen til filen som formateres.