İçeriğe geç
New Kodine v2 is now available

Biçimlendiriciler

kodine her dil için uygun biçimlendiriciyi otomatik çalıştırır.

kodine, bir dosya oluşturduğunda ya da üzerinde değişiklik yaptığında dosyayı o dile ait biçimlendiriciyle otomatik olarak düzenler. Böylece üretilen kod, projenizdeki kod üslubuyla birebir uyumlu kalır.


Yerleşik

kodine, yaygın diller ve çatılar için hazır biçimlendiricilerle gelir. Aşağıdaki tabloda bu biçimlendiricileri, geçerli oldukları dosya uzantılarını ve gerektirdikleri komut ya da yapılandırma koşullarını bulabilirsiniz.

BiçimlendiriciUzantılarGereksinimler
gofmt.gogofmt komutunun kurulu olması
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix komutunun kurulu olması
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve dahasıpackage.json içinde prettier bağımlılığı
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml ve dahasıbiome.json(c) yapılandırma dosyası
zig.zig, .zonzig komutunun kurulu olması
clang-format.c, .cpp, .h, .hpp, .ino ve dahası.clang-format yapılandırma dosyası
ktlint.kt, .ktsktlint komutunun kurulu olması
ruff.py, .pyiruff komutunun kurulu olması ve yapılandırılması
rustfmt.rsrustfmt komutunun kurulu olması
cargofmt.rscargo fmt komutunun kurulu olması
uv.py, .pyiuv komutunun kurulu olması
rubocop.rb, .rake, .gemspec, .rurubocop komutunun kurulu olması
standardrb.rb, .rake, .gemspec, .rustandardrb komutunun kurulu olması
htmlbeautifier.erb, .html.erbhtmlbeautifier komutunun kurulu olması
air.Rair komutunun kurulu olması
dart.dartdart komutunun kurulu olması
dfmt.ddfmt komutunun kurulu olması
ocamlformat.ml, .mliocamlformat komutunun kurulu olması ve .ocamlformat yapılandırma dosyası
terraform.tf, .tfvarsterraform komutunun kurulu olması
gleam.gleamgleam komutunun kurulu olması
nixfmt.nixnixfmt komutunun kurulu olması
shfmt.sh, .bashshfmt komutunun kurulu olması
pint.phpcomposer.json içinde laravel/pint bağımlılığı
oxfmt (Deneysel).js, .jsx, .ts, .tsxpackage.json içinde oxfmt bağımlılığı ve deneysel ortam değişkeni bayrağı
ormolu.hsormolu komutunun kurulu olması

Örneğin projenizin package.json dosyasında prettier bağımlılığı tanımlıysa, kodine onu kendiliğinden devreye alır.


Nasıl çalışır?

kodine bir dosya yazdığında ya da düzenlediğinde şu adımları izler:

  1. Dosyanın uzantısını etkin durumdaki tüm biçimlendiricilerle karşılaştırır.
  2. Eşleşen biçimlendiricinin komutunu dosya üzerinde çalıştırır.
  3. Ortaya çıkan biçimlendirme farklarını dosyaya otomatik olarak uygular.

Tüm bunlar arka planda gerçekleşir; sizin ek bir adım atmanıza gerek kalmadan kod üslubunuz korunur.


Yapılandırma

Biçimlendirici davranışını kodine yapılandırmanızdaki formatter bölümü üzerinden özelleştirebilirsiniz.

kodine.json
{
"$schema": "https://kodine.net/config.json",
"formatter": {}
}

Her biçimlendirici tanımında şu alanlar kullanılabilir:

ÖzellikTipAçıklama
disabledbooleanBiçimlendiriciyi kapatmak için true yapın
commandstring[]Biçimlendirme işlemini gerçekleştirecek komut
environmentobjectKomut çalışırken tanımlanacak ortam değişkenleri
extensionsstring[]Bu biçimlendiricinin hangi dosya uzantılarına uygulanacağı

Birkaç örneğe göz atalım.


Biçimlendiricileri devre dışı bırakma

Tüm biçimlendiricileri genel olarak kapatmak için formatter alanına doğrudan false verin:

kodine.json
{
"$schema": "https://kodine.net/config.json",
"formatter": false
}

Yalnızca belirli bir biçimlendiriciyi kapatmak isterseniz o biçimlendiricinin disabled alanını true yapın:

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

Özel biçimlendiriciler

Komut, ortam değişkenleri ve dosya uzantılarını kendiniz tanımlayarak hazır biçimlendiricilerin üzerine yazabilir ya da tamamen yeni biçimlendiriciler ekleyebilirsiniz:

kodine.json
{
"$schema": "https://kodine.net/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"]
}
}
}

Komut içindeki $FILE yer tutucusu, çalışma anında biçimlendirilen dosyanın yoluyla değiştirilir.