İç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.


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.

FormatterExtensionsRequirements
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 morepackage.json içinde prettier bağımlılığı
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve morebiome.json(c) yapılandırma dosyası
zig.zig, .zonzig komutu mevcut
clang-format.c, .cpp, .h, .hpp, .ino ve more.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 (Experimental).js, .jsx, .ts, .tsxpackage.json içinde oxfmt bağımlılığı ve experimental env variable flag
ormolu.hsormolu 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.

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

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

PropertyTypeAçı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.