diff options
Diffstat (limited to 'packages/web/src/content/docs/nb/formatters.mdx')
| -rw-r--r-- | packages/web/src/content/docs/nb/formatters.mdx | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/nb/formatters.mdx b/packages/web/src/content/docs/nb/formatters.mdx new file mode 100644 index 000000000..9349188bc --- /dev/null +++ b/packages/web/src/content/docs/nb/formatters.mdx @@ -0,0 +1,130 @@ +--- +title: Formatere +description: 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. + +| Formater | Utvidelser | Krav | +| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| gofmt | .go | `gofmt` kommando tilgjengelig | +| blande | .ex, .exs, .eex, .heex, .leex, .neex, .sface | `mix` kommando tilgjengelig | +| penere | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og [mer](https://prettier.io/docs/en/index.html) | `prettier` avhengighet i `package.json` | +| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml og [mer](https://biomejs.dev/) | `biome.json(c)` konfigurasjonsfil | +| sikk | .zig, .zon | `zig` kommando tilgjengelig | +| klang-format | .c, .cpp, .h, .hpp, .ino og [mer](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` konfigurasjonsfil | +| ktlint | .kt, .kts | `ktlint` kommando tilgjengelig | +| ruff | .py, .pyi | `ruff` kommando tilgjengelig med config | +| rustfmt | .rs | `rustfmt` kommando tilgjengelig | +| cargofmt | .rs | `cargo fmt` kommando tilgjengelig | +| uv | .py, .pyi | `uv` kommando tilgjengelig | +| rubocop | .rb, .rake, .gemspec, .ru | `rubocop` kommando tilgjengelig | +| standardrb | .rb, .rake, .gemspec, .ru | `standardrb` kommando tilgjengelig | +| htmlbeautifier | .erb, .html.erb | `htmlbeautifier` kommando tilgjengelig | +| luft | .R | `air` kommando tilgjengelig | +| dart | .dart | `dart` kommando tilgjengelig | +| ocamlformat | .ml, .mli | `ocamlformat` kommando tilgjengelig og `.ocamlformat` konfigurasjonsfil | +| terraform | .tf, .tfvars | `terraform` kommando tilgjengelig | +| glimt | .gleam | `gleam` kommando tilgjengelig | +| nixfmt | .nix | `nixfmt` kommando tilgjengelig | +| shfmt | .sh, .bash | `shfmt` kommando tilgjengelig | +| halvliter | .php | `laravel/pint` avhengighet i `composer.json` | +| oxfmt (Eksperimentell) | .js, .jsx, .ts, .tsx | `oxfmt` avhengighet i `package.json` og et [eksperimentelt env variabel flagg](/docs/cli/#experimental) | +| ormolu | .hs | `ormolu` 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. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "formatter": {} +} +``` + +Hver formateringskonfigurasjon støtter følgende: + +| Eiendom | Skriv | Beskrivelse | +| ------------- | -------- | ------------------------------------------------------- | +| `disabled` | boolsk | Sett dette til `true` for å deaktivere formatereren | +| `command` | streng[] | Kommandoen som skal kjøres for formatering | +| `environment` | objekt | Miljøvariabler som skal angis når du kjører formateringsverktøyet | +| `extensions` | streng[] | Filutvidelser denne formatereren skal håndtere | + +La oss se på noen eksempler. + +--- + +### Deaktivering av formatere + +For å deaktivere **alle** formatere globalt, sett `formatter` til `false`: + +```json title="opencode.json" {3} +{ + "$schema": "https://opencode.ai/config.json", + "formatter": false +} +``` + +For å deaktivere en **spesifikk** formatering, sett `disabled` til `true`: + +```json title="opencode.json" {5} +{ + "$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: + +```json title="opencode.json" {4-14} +{ + "$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. |
