Temel Özellikler
- Terraform-stili bloklar, nitelikler, listeler/haritalar ve heredoc'lar için HCL2-destekli biçimlendirme
- =, virgüller, parantezler ve iç içe bloklar etrafında tutarlı girinti ve boşluk
- Mümkün olduğunda okunabilirlik için yorumları ve kasıtlı boş satırları korur
- .tf, .hcl, HCL-tabanlı .tfvars ve Packer .pkr.hcl dosyalarıyla çalışır
- İdempotent çıktı: biçimlendiriciyi tekrar çalıştırmak aynı sonucu verir
- Minimal yüzey alanı: tek bir “Biçimlendir” eylemi, tartışılacak stil düğmeleri yok
- Biçimlendirilmiş sonucun düzenleyiciden tek tıkla kopyalanması veya indirilmesi
- Güvenli bir uç nokta aracılığıyla sunucu destekli işleme — hızlı düzeltmeler için harika; yüksek hassasiyetli kod için yerel CLI tercih edin
🔧 HCL Biçimlendirici Nasıl Kullanılır for hcl-formatter
1. Kodunuzu Yapıştırın veya Bırakın
HCL/Terraform dosyanızı (.tf, HCL tabanlı .tfvars, .hcl, .pkr.hcl, vb.) açın ve içeriği düzenleyiciye yapıştırın veya tarayıcınız destekliyorsa dosyayı bırakın.
2. “Biçimlendir”e Tıklayın
Biçimlendir düğmesine tıklayın. Yapılandırmanız, girintileme, boşluk ve düzen için terraform fmt tarzı kurallar uygulayan güvenli bir arka uca gönderilir ve biçimlendirilmiş HCL2 döndürülür.
3. İnceleyin, Kopyalayın veya İndirin
Sonucu düzenleyicide kontrol edin, ardından IDE'nize geri kopyalayın veya biçimlendirilmiş dosyayı indirip deponuza kaydedin.
Teknik Özellikler
Yürütme Modeli
Biçimlendirici, HCL2 için terraform fmt tarzı düzen normalleştirmesini taklit etmek üzere sunucu destekli olarak tasarlanmıştır.
| Yön | Ayrıntı |
|---|---|
| Mod | Sunucu destekli (tarayıcı içi WASM yok) |
| Kapsam | Boşluk, girintileme, aralık, temel düzen |
| Yeniden Sıralama | Kaynak veya blokların anlamsal yeniden sıralanması yok |
| Seçenekler | Yok — tahmin edilebilir çıktı için tek Biçimlendir eylemi |
| Sınırlar | Yaklaşık 1–2 MB giriş, ~25s sunucu zaman aşımı (ayarlamaya tabi) |
| Saklama | Geçici işleme — giriş biçimlendirmeden sonra atılır |
Dil Kapsamı
Terraform ve diğer HashiCorp araçlarında kullanılan yaygın HCL2 yapılarını anlar.
| Yapı | Örnekler | Notlar |
|---|---|---|
| Bloklar | resource, variable, output, module, locals, job, task | İç içe blok yapısı korunur |
| Öznitelikler | name = "web", count = 2 | = etrafında ve öznitelikler arasında boşluk normalleştirilir |
| Koleksiyonlar | [1, 2, 3], { key = value } | Listeler ve haritalar/nesneler için düzenli düzen |
| Heredoc'lar | <<-EOF ... EOF | İşaretleyiciler korunur; mümkün olduğunda girinti normalleştirilir |
| Yorumlar | # ve // tarzı yorumlar | Niyeti ve belgelendirmeyi korumak için mümkün olduğunda saklanır |
Mini Öncesi/Sonrası
Bir Terraform kaynağında girinti ve boşluk temizliğinin küçük bir örneği.
# Önce
resource "aws_s3_bucket" "b"{bucket="demo"
tags={Name="demo"}}
# Sonra
resource "aws_s3_bucket" "b" {
bucket = "demo"
tags = {
Name = "demo"
}
}
Hatalar ve Özel Durumlar
Biçimlendirme başarısız olursa veya hata döndürürse, genellikle HCL2 girişindeki ayrıştırma sorunlarından kaynaklanır.
| Belirti | Muhtemel neden | Kontrol edilecekler |
|---|---|---|
| Çıktı yok / ayrıştırma hatası | Kapatılmamış süslü parantez, köşeli parantez veya parantez | Eşleşen { }, [ ], ( ) çiftlerini sayın ve tüm blokları kapatın |
| Heredoc sorunları | Eksik veya uyuşmayan sonlandırıcı | EOF gibi işaretleyicilerin tam olarak ve kendi satırlarında göründüğünden emin olun |
| Karışık stiller | Sekmeler/boşluklar veya başıboş karakterler | Girintiyi normalleştirin, başıboş kontrol karakterlerini kaldırın |
| .tfvars karışıklığı | JSON vs HCL sözdizimi | *.tfvars.json dosyaları için JSON biçimlendirici veya terraform fmt kullanın |
Komut Satırı Alternatifleri
Günlük Altyapı Kod olarak İş Akışları için, yerel olarak ve CI'da resmi biçimlendiricileri kullanın ve bu çevrimiçi aracı hızlı geçici temizlikler için saklayın.
macOS / Linux
Terraform: yerinde biçimlendir
terraform fmtMevcut dizindeki .tf ve HCL tabanlı .tfvars dosyalarını yeniden yazar.
Terraform: özyinelemeli CI kontrolü (yazma yok)
terraform fmt -check -recursiveHerhangi bir dosyanın biçimlendirme gerektirmesi durumunda sıfır dışı çıkar — CI ve ön işleme kancaları için mükemmel.
Packer: şablonu biçimlendir
packer fmt path/to/template.pkr.hclBelirtilen Packer HCL dosyasını yerinde biçimlendirir.
Windows (PowerShell)
Tüm Terraform dosyalarını özyinelemeli olarak biçimlendir
Get-ChildItem -Recurse -Filter *.tf | ForEach-Object { terraform fmt $_.FullName }Geçerli dizin altında bulunan her .tf dosyasında terraform fmt çalıştırır.
CI tarzı biçimlendirme kontrolü
terraform fmt -check -recursiveBiçimlendirme güncel olmadığında derleme hatası vermek için yapı işlem hatlarında kullanın.
GitHub Actions
Biçimlendirme gerekirse derlemeyi durdur
steps:
- uses: hashicorp/setup-terraform@v3
- run: terraform fmt -check -recursiveHerhangi bir Terraform dosyası doğru biçimlendirilmemişse iş akışını durdurur.
Çekme isteklerinde otomatik biçimlendirme (isteğe bağlı)
steps:
- run: terraform fmt -recursive
- run: git diff --quiet || (git config user.name "bot" && git config user.email "bot@example" && git commit -am "chore: terraform fmt" && git push)terraform fmt uygular ve yalnızca biçimlendirme içeren bir commit'i dal üzerine geri iter.
Pratik Uygulamalar
PR Hijyeni & İncelemeler
İnceleyicilerin gerçek altyapı değişikliklerine odaklanabilmesi için boşluk ve girintileri standartlaştırın.
- Bir çekme isteği açmadan önce biçimlendirmeyi çalıştırın
- Terraform incelemelerindeki ayrıntılı stil yorumlarını azaltın
- Git farklarını küçük ve anlamlı tutun
Terraform Modül Geliştirme
Modülleri ekipler, depolar ve kayıt defterleri arasında tutarlı tutun.
- Paylaşılan modüllerde değişken ve çıktı bloklarını hizalayın
- Örnek yapılandırmaların tek bir kurum stilini takip etmesini sağlayın
CI Bekçiliği
Zamanla stil sapmasını önlemek için CI'da terraform fmt kontrollerini kullanın.
- `terraform fmt -check -recursive`'ı zorunlu bir işlem hattı adımı olarak ekleyin
- Tüm .tf dosyaları biçimlendirilene kadar birleştirmeleri engelleyin
Uyum Sağlama & Dokümantasyon
Okunabilir örnekler, yeni ekip üyelerinin hem Terraform'u hem de kurum stilini hızla öğrenmesine yardımcı olur.
- README'lerde tutarlı biçimlendirilmiş parçacıklar yayınlayın
- Dahili Terraform eğitim oturumlarında temiz örnekler kullanın
❓ Frequently Asked Questions
🔒Kodum yerel olarak işleniyor mu?
🛡️Gizli bilgileri buraya yapıştırabilir miyim?
🧩Biçimlendirme yapılandırma davranışını değiştirir mi?
📄.tfvars dosyalarını biçimlendirebilir miyim?
JSON tabanlı değişkenleri destekler; bunlar JSON kurallarını izler ve bir JSON biçimlendiricisi veya `terraform fmt` tarafından işlenmesi daha uygundur.⚙️Bu, `terraform fmt`'ten nasıl farklı?
🧯Biçimlendirme neden başarısız oldu?
JSON tarzı tfvars'ların HCL sözdizimiyle karıştırılması. Yapısal sorunu düzeltin (veya doğru lehçe/biçimlendiriciyi kullanın) ve tekrar deneyin.Pro Tips
Büyük altyapı depolarında biçimlendirme kaymasını önlemek için CI'da `terraform fmt -check -recursive` uygulayın.
Gizli bilgileri veya durumla ilgili verileri çevrimiçi araçlara yapıştırmaktan kaçının; yapılandırma örneklerini temiz tutun ve gerçek altyapı kodları için yerel CLI biçimlendiricilerini çalıştırın.
Terraform dosyalarının platformlar arasında temiz, kararlı farklar üretmesi için editörünüzde sondaki yeni satırları ve girintileri normalleştirin.
`terraform fmt` çalıştıran bir ön işleme kancası ekleyin, böylece çekme istekleri zaten biçimlendirilmiş olarak gelsin ve inceleme konuşmaları mimari ve risk üzerine odaklanabilsin.
Additional Resources
Other Tools
- CSS Güzelleştirici
- HTML Güzelleştirici
- JavaScript Güzelleştirici
- PHP Güzelleştirici
- Renk Seçici
- Sprite Çıkarıcı
- Base64 Çözücü
- Base64 Kodlayıcı
- C# Biçimlendirici
- CSV Biçimlendirici
- Dockerfile Formatter
- Elm Biçimlendirici
- ENV Biçimlendirici
- Go Biçimlendirici
- GraphQL Biçimlendirici
- INI Biçimlendirici
- JSON Biçimlendirici
- Latex Biçimlendirici
- Markdown Biçimlendirici
- ObjectiveC Biçimlendirici
- Php Formatter
- Proto Biçimlendirici
- Python Biçimlendirici
- Ruby Biçimlendirici
- Rust Biçimlendirici
- Scala Biçimlendirici
- Shell Script Biçimlendirici
- SQL Biçimlendirici
- SVG Biçimlendirici
- Swift Biçimlendirici
- TOML Biçimlendirici
- Typescript Formatter
- XML Biçimlendirici
- YAML Biçimlendirici
- Yarn Biçimlendirici
- CSS Küçültücü
- Html Minifier
- Javascript Minifier
- JSON Küçültücü
- XML Küçültücü
- HTTP Başlıkları Görüntüleyici
- PDF'den Metne
- Regex Test Edici
- SERP Sıra Kontrolü
- Whois Sorgulama