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çimlendirici | Uzantılar | Gereksinimler |
|---|---|---|
| gofmt | .go | gofmt komutunun kurulu olması |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | mix 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, .zon | zig komutunun kurulu olması |
| clang-format | .c, .cpp, .h, .hpp, .ino ve dahası | .clang-format yapılandırma dosyası |
| ktlint | .kt, .kts | ktlint komutunun kurulu olması |
| ruff | .py, .pyi | ruff komutunun kurulu olması ve yapılandırılması |
| rustfmt | .rs | rustfmt komutunun kurulu olması |
| cargofmt | .rs | cargo fmt komutunun kurulu olması |
| uv | .py, .pyi | uv komutunun kurulu olması |
| rubocop | .rb, .rake, .gemspec, .ru | rubocop komutunun kurulu olması |
| standardrb | .rb, .rake, .gemspec, .ru | standardrb komutunun kurulu olması |
| htmlbeautifier | .erb, .html.erb | htmlbeautifier komutunun kurulu olması |
| air | .R | air komutunun kurulu olması |
| dart | .dart | dart komutunun kurulu olması |
| dfmt | .d | dfmt komutunun kurulu olması |
| ocamlformat | .ml, .mli | ocamlformat komutunun kurulu olması ve .ocamlformat yapılandırma dosyası |
| terraform | .tf, .tfvars | terraform komutunun kurulu olması |
| gleam | .gleam | gleam komutunun kurulu olması |
| nixfmt | .nix | nixfmt komutunun kurulu olması |
| shfmt | .sh, .bash | shfmt komutunun kurulu olması |
| pint | .php | composer.json içinde laravel/pint bağımlılığı |
| oxfmt (Deneysel) | .js, .jsx, .ts, .tsx | package.json içinde oxfmt bağımlılığı ve deneysel ortam değişkeni bayrağı |
| ormolu | .hs | ormolu 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:
- Dosyanın uzantısını etkin durumdaki tüm biçimlendiricilerle karşılaştırır.
- Eşleşen biçimlendiricinin komutunu dosya üzerinde çalıştırır.
- 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.
{ "$schema": "https://kodine.net/config.json", "formatter": {}}Her biçimlendirici tanımında şu alanlar kullanılabilir:
| Özellik | Tip | Açıklama |
|---|---|---|
disabled | boolean | Biçimlendiriciyi kapatmak için true yapın |
command | string[] | Biçimlendirme işlemini gerçekleştirecek komut |
environment | object | Komut çalışırken tanımlanacak ortam değişkenleri |
extensions | string[] | 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:
{ "$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:
{ "$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:
{ "$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.