Görünmez Biçimlendirme Sorunu
Birden fazla kişi bir Swift paketine katkıda bulunduğunda, girintileme tutarsızlıkları sızıyor. Bir katkıcı 4 boşluk kullanıyor, bir diğeri tab kullanıyor, üçüncüsü 2 boşluk kullanıyor. Pull request’ler sadece boşluk değişiklikleriyle gürültülü hale geliyor ve kod tabanı tutarsız bir karmaşaya doğru kayıyor. Çözüm, eklemesi 30 saniye süren tek bir dosya.
.editorconfig Standardı
EditorConfig, proje bazında kodlama stili ayarlarını tanımlamak için yaygın olarak desteklenen bir standart. Xcode .editorconfig dosyalarına saygı gösteriyor, böylece katkıcılar projeyi açtıklarında otomatik olarak doğru girintileme ayarlarını alıyor – elle yapılandırma yok, okunacak dokümantasyon yok.
İşte her SwiftPM paketi için önerdiğim .editorconfig:
root = true
[*.swift]
indent_style = space
indent_size = 3
[*.{yml,yaml,json}]
indent_style = space
indent_size = 2Swift için 3 boşluk girintileme bilinçli bir tercih. 2 veya 4 boşluktan daha az yaygın, ama iyi bir denge noktası: iç içe closure’lar için 2 boşluktan daha okunabilir, yatay alanı 4 boşluktan daha az israf ediyor. Bir kez denediğinde, standart seçenekler ya çok sıkışık ya da çok dağınık hissetmeye başlıyor.
Neden Global Ayarları Geçiyor
Her geliştiricinin genel olarak yapılandırılmış kendi Xcode girintileme tercihleri var. .editorconfig olmadan, bu genel ayarlar açtıkları her projeye uygulanıyor. Bu, 4 boşluk tab’lı bir katkıcının bir dosyayı düzenlerken sessizce kodu yeniden biçimlendireceği anlamına geliyor, proje kuralı farklı olsa bile.
Depo kökünde .editorconfig ile Xcode, genel ayarları projeye özel olanlarla geçersiz kılıyor. Katkıcıların hiçbir şeyi değiştirmesi gerekmiyor – sadece çalışıyor.
Benimseme
Bu dosyayı paket köküne bırak ve commit et. Hepsi bu. Build adımı yok, bağımlılık yok, dosyanın kendisi dışında yapılandırma yok. Çoğu modern editör (VS Code, Vim, Sublime Text) de EditorConfig destekliyor, bu yüzden Xcode kullanmayan katkıcılar da faydalanıyor.
