---
title: Biçimlendiriciler
description: opencode dile özgü biçimlendiriciler kullanır.
---

opencode, dosyaları dile özgü formatlayıcılar kullanılarak yazıldıktan veya düzenlendikten sonra otomatik olarak formatlar. Bu, oluşturulan kodun projenizin kod stillerine uymasını sağlar.

---

## Built-in

opencode, popüler diller ve çerçeveler için çeşitli yerleşik biçimlendiricilerle birlikte gelir. Aşağıda ihtiyaç duyduğu biçimlendiricilerin, desteklenen dosya uzantılarının ve komutların veya yapılandırma seçeneklerinin bir listesi bulunmaktadır.

| Formatter          | Extensions                                                                                             | Requirements                                                                                             |
| ------------------ | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- |
| gofmt              | .go                                                                                                    | `gofmt` komutu mevcut                                                                                    |
| karışım            | .ex, .exs, .eex, .heex, .leex, .neex, .sface                                                           | `mix` komutu mevcut                                                                                      |
| daha güzel         | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve [more](https://prettier.io/docs/en/index.html) | `prettier` bağımlılığı `package.json`'de                                                                 |
| biyom              | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve [more](https://biomejs.dev/)                   | `biome.json(c)` yapılandırma dosyası                                                                     |
| zig                | .zig, .zon                                                                                             | `zig` komutu mevcut                                                                                      |
| clang formatı      | .c, .cpp, .h, .hpp, .ino ve [more](https://clang.llvm.org/docs/ClangFormat.html)                       | `.clang-format` yapılandırma dosyası                                                                     |
| klint              | .kt, .kts                                                                                              | `ktlint` komutu mevcut                                                                                   |
| fırfır             | .py, .pyi                                                                                              | `ruff` komutu yapılandırmayla kullanılabilir                                                             |
| pas fmt            | .rs                                                                                                    | `rustfmt` komutu mevcut                                                                                  |
| kargo fmt          | .rs                                                                                                    | `cargo fmt` komutu mevcut                                                                                |
| UV                 | .py, .pyi                                                                                              | `uv` komutu mevcut                                                                                       |
| rubokop            | .rb, .rake, .gemspec, .ru                                                                              | `rubocop` komutu mevcut                                                                                  |
| standartrb         | .rb, .rake, .gemspec, .ru                                                                              | `standardrb` komutu mevcut                                                                               |
| htmlgüzelleştirici | .erb, .html.erb                                                                                        | `htmlbeautifier` komutu mevcut                                                                           |
| hava               | .R                                                                                                     | `air` komutu mevcut                                                                                      |
| dart               | .dart                                                                                                  | `dart` komutu mevcut                                                                                     |
| ocamlformat        | .ml, .mli                                                                                              | `ocamlformat` komutu mevcut ve `.ocamlformat` yapılandırma dosyası                                       |
| yeryüzü            | .tf, .tfvars                                                                                           | `terraform` komutu mevcut                                                                                |
| parıltı            | .gliam                                                                                                 | `gleam` komutu mevcut                                                                                    |
| nixfmt             | .nix                                                                                                   | `nixfmt` komutu mevcut                                                                                   |
| shfmt              | .sh, .bash                                                                                             | `shfmt` komutu mevcut                                                                                    |
| pint               | .php                                                                                                   | `laravel/pint` dependency in `composer.json`                                                             |
| oxfmt (Deneysel)   | .js, .jsx, .ts, .tsx                                                                                   | `oxfmt` içindeki `package.json` bağımlılığı ve [experimental env variable flag](/docs/cli/#experimental) |
| ormolu             | .hs                                                                                                    | `ormolu` komutu mevcut                                                                                   |

Yani eğer projenizin `prettier` dosyasında `package.json` varsa, opencode bunu otomatik olarak kullanacaktır.

---

## Nasıl çalışır?

opencode bir dosyayı yazdığında veya düzenlediğinde:

1. Dosya uzantısını tüm etkin formatlayıcılara göre kontrol eder.
2. Dosyada uygun biçimlendirici komutunu çalıştırır.
3. Biçimlendirme değişikliklerini otomatik olarak uygular.

Bu işlem arka planda gerçekleşir ve kod stillerinizin herhangi bir manuel adım olmadan korunmasını sağlar.

---

## Yapılandır

Biçimlendiricileri opencode yapılandırmanızdaki `formatter` bölümü aracılığıyla özelleştirebilirsiniz.

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

Her formatlayıcı yapılandırması aşağıdakileri destekler:

| Emlak         | Tür    | Açıklama                                                               |
| ------------- | ------ | ---------------------------------------------------------------------- |
| `disabled`    | boole  | Biçimlendiriciyi devre dışı bırakmak için bunu `true` olarak ayarlayın |
| `command`     | dize[] | Biçimlendirme için çalıştırılacak komut                                |
| `environment` | nesne  | Biçimlendiriciyi çalıştırırken ayarlanacak ortam değişkenleri          |
| `extensions`  | dize[] | Bu formatlayıcının işlemesi gereken dosya uzantıları                   |

Let's look at some examples.

---

### Biçimlendiricileri devre dışı bırakma

**tüm** biçimlendiricileri genel olarak devre dışı bırakmak için `formatter` değerini `false` olarak ayarlayın:

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

**Belirli** bir biçimlendiriciyi devre dışı bırakmak için `disabled` değerini `true` olarak ayarlayın:

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

---

### Custom formatters

Komutu, ortam değişkenlerini ve dosya uzantılarını belirterek yerleşik biçimlendiricileri geçersiz kılabilir veya yenilerini ekleyebilirsiniz:

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

Komuttaki **`$FILE` yer tutucusu**, biçimlendirilen dosyanın yolu ile değiştirilecektir.
