File size: 8,844 Bytes
0dbc9de | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | ---
title: Formatery
description: OpenCode u偶ywa formater贸w specyficznych dla j臋zyka.
---
OpenCode automatycznie formatuje pliki po ich zapisaniu lub edycji przy u偶yciu formater贸w specyficznych dla j臋zyka. Zapewnia to, 偶e wygenerowany kod jest zgodny ze stylem kodu Twojego projektu.
---
## Wbudowane
OpenCode zawiera kilka wbudowanych formater贸w dla popularnych j臋zyk贸w i framework贸w. Poni偶sza tabela zawiera list臋 formater贸w, obs艂ugiwanych plik贸w oraz wymaga艅 konfiguracyjnych.
| Formater | Rozszerzenia | Wymagania |
| -------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| gofmt | .go | Dost臋pne polecenie `gofmt` |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Dost臋pne polecenie `mix` |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [wi臋cej](https://prettier.io/docs/en/index.html) | Zale偶no艣膰 `prettier` w `package.json` |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [wi臋cej](https://biomejs.dev/) | Plik konfiguracyjny `biome.json(c)` |
| zig | .zig, .zon | Dost臋pne polecenie `zig` |
| clang-format | .c, .cpp, .h, .hpp, .ino i [wi臋cej](https://clang.llvm.org/docs/ClangFormat.html) | Plik konfiguracyjny `.clang-format` |
| ktlint | .kt, .kts | Dost臋pne polecenie `ktlint` |
| ruff | .py, .pyi | Dost臋pne polecenie `ruff` |
| rustfmt | .rs | Dost臋pne polecenie `rustfmt` |
| cargo | .rs | Dost臋pne polecenie `cargo fmt` |
| uv | .py, .pyi | Dost臋pne polecenie `uv` |
| rubocop | .rb, .rake, .gemspec, .ru | Dost臋pne polecenie `rubocop` |
| standardrb | .rb, .rake, .gemspec, .ru | Dost臋pne polecenie `standardrb` |
| htmlbeautifier | .erb, .html.erb | Dost臋pne polecenie `htmlbeautifier` |
| air | .R | Dost臋pne polecenie `air` |
| dart | .dart | Dost臋pne polecenie `dart` |
| dfmt | .d | Dost臋pne polecenie `dfmt` |
| ocamlformat | .ml, .mli | Dost臋pne polecenie `ocamlformat` i plik konfiguracyjny `.ocamlformat` |
| terraform | .tf, .tfvars | Dost臋pne polecenie `terraform` |
| gleam | .gleam | Dost臋pne polecenie `gleam` |
| nixfmt | .nix | Dost臋pne polecenie `nixfmt` |
| shfmt | .sh, .bash | Dost臋pne polecenie `shfmt` |
| pint | .php | Zale偶no艣膰 `laravel/pint` w `composer.json` |
| oxfmt (experimental) | .js, .jsx, .ts, .tsx | Zale偶no艣膰 `oxfmt` w `package.json` i [eksperymentalna flaga](/docs/cli/#experimental) |
| ormolu | .hs | Dost臋pne polecenie `ormolu` |
Je艣li wi臋c Tw贸j projekt zawiera `prettier` w `package.json`, OpenCode automatycznie go u偶yje.
---
## Jak to dzia艂a
Kiedy OpenCode zapisuje lub edytuje plik:
1. Sprawdza plik pod k膮tem wszystkich dost臋pnych formater贸w.
2. Uruchamia odpowiedni formater na pliku.
3. Automatycznie stosuje zmiany formatowania.
Ten proces odbywa si臋 w tle, zapewniaj膮c sp贸jno艣膰 stylu kodu bez konieczno艣ci r臋cznej interwencji.
---
## Konfiguracja
Mo偶esz dostosowa膰 formatery za pomoc膮 sekcji `formatter` w konfiguracji OpenCode.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"formatter": {}
}
```
Ka偶dy formater obs艂uguje nast臋puj膮ce w艂a艣ciwo艣ci:
| W艂a艣ciwo艣膰 | Typ | Opis |
| ------------- | -------- | -------------------------------------------------------- |
| `disabled` | boolean | Ustaw na `true`, aby wy艂膮czy膰 ten formater |
| `command` | string[] | Polecenie uruchomienia formatera |
| `environment` | object | Zmienne 艣rodowiskowe ustawiane podczas uruchamiania |
| `extensions` | string[] | Rozszerzenia plik贸w, kt贸re powinny u偶ywa膰 tego formatera |
Sp贸jrzmy na kilka przyk艂ad贸w.
---
### Wy艂膮czanie formater贸w
Aby globalnie wy艂膮czy膰 **wszystkie** formatery, ustaw `formatter` na `false`:
```json title="opencode.json" {3}
{
"$schema": "https://opencode.ai/config.json",
"formatter": false
}
```
Aby wy艂膮czy膰 **okre艣lony** formater, ustaw `disabled` na `true`:
```json title="opencode.json" {5}
{
"$schema": "https://opencode.ai/config.json",
"formatter": {
"prettier": {
"disabled": true
}
}
}
```
---
### Niestandardowe formatery
Mo偶esz doda膰 niestandardowe formatery, podaj膮c polecenie, zmienne 艣rodowiskowe i rozszerzenia plik贸w:
```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"]
}
}
}
```
Symbol zast臋pczy **`$FILE`** w poleceniu jest zast臋powany 艣cie偶k膮 do formatowanego pliku.
|