opencode / packages /web /src /content /docs /pl /formatters.mdx
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
0dbc9de verified
Raw
History Blame Contribute Delete
8.84 kB
---
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.