Gå til innholdet

Formatere

opencode bruker språkspesifikke formatere.

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


Innebygd

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

FormaterUtvidelserKrav
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 merprettier avhengighet i package.json
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og merbiome.json(c) konfigurasjonsfil
zig.zig, .zonzig kommando tilgjengelig
clang-format.c, .cpp, .h, .hpp, .ino og mer.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 formatere.
  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.


Konfigurer

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

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

Hver formateringskonfigurasjon støtter følgende:

PropertyTypeBeskrivelse
disabledbooleanSett dette til true for å deaktivere formatereren
commandstring[]Kommandoen som skal kjøres for formatering
environmentobjectMiljøvariabler som skal angis når du kjører formateringsverktøyet
extensionsstring[]Filutvidelser denne formatereren skal håndtere

La oss se på noen eksempler.


Deaktivering av formatere

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

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

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

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

Egendefinerte formatere

Du kan overstyre de innebygde formaterne 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"]
}
}
}

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