İçeriğe geç

Biçimlendiriciler

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.


Yerleşik

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.

BiçimlendiriciUzantılarGereksinimler
gofmt.gogofmt komutu mevcut
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix komutu mevcut
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve daha fazlapackage.json içinde prettier bağımlılığı
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve daha fazlabiome.json(c) yapılandırma dosyası
zig.zig, .zonzig komutu mevcut
clang-format.c, .cpp, .h, .hpp, .ino ve daha fazla.clang-format yapılandırma dosyası
ktlint.kt, .ktsktlint komutu mevcut
ruff.py, .pyiruff komutu yapılandırmayla kullanılabilir
rustfmt.rsrustfmt komutu mevcut
cargofmt.rscargo fmt komutu mevcut
uv.py, .pyiuv komutu mevcut
rubocop.rb, .rake, .gemspec, .rurubocop komutu mevcut
standardrb.rb, .rake, .gemspec, .rustandardrb komutu mevcut
htmlbeautifier.erb, .html.erbhtmlbeautifier komutu mevcut
air.Rair komutu mevcut
dart.dartdart komutu mevcut
ocamlformat.ml, .mliocamlformat komutu mevcut ve .ocamlformat yapılandırma dosyası
terraform.tf, .tfvarsterraform komutu mevcut
gleam.gleamgleam komutu mevcut
nixfmt.nixnixfmt komutu mevcut
shfmt.sh, .bashshfmt komutu mevcut
pint.phpcomposer.json içinde laravel/pint bağımlılığı
oxfmt (Deneysel).js, .jsx, .ts, .tsxpackage.json içinde oxfmt bağımlılığı ve experimental env variable flag
ormolu.hsormolu komutu mevcut

Yani eğer projenizin package.json dosyasında prettier 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ırma

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

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

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

ÖzellikTipAçıklama
disabledbooleanBiçimlendiriciyi devre dışı bırakmak için bunu true olarak ayarlayın
commandstring[]Biçimlendirme için çalıştırılacak komut
environmentobjectBiçimlendiriciyi çalıştırırken ayarlanacak ortam değişkenleri
extensionsstring[]Bu formatlayıcının işlemesi gereken dosya uzantıları

Bazı örneklere bakalım.


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:

opencode.json
{
"$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:

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

Özel biçimlendiriciler

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

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

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