Belangrijkste Kenmerken
- HCL2-bewuste opmaak voor Terraform-stijl blokken, attributen, lijsten/maps en heredocs
- Consistente inspringing en spatiëring rond =, komma's, accolades en geneste blokken
- Behoudt commentaar en opzettelijke lege regels waar mogelijk voor leesbaarheid
- Werkt met .tf, .hcl, HCL-gebaseerde .tfvars en Packer .pkr.hcl bestanden
- Idempotente uitvoer: opnieuw uitvoeren van de formatter levert hetzelfde resultaat op
- Minimale interface: een enkele 'Formatteren' actie, geen stijl opties om over te discussiëren
- Eén-klik kopiëren of downloaden van het opgemaakte resultaat vanuit de editor
- Server-gestuurde verwerking via een beveiligd eindpunt — ideaal voor snelle fixes; gebruik liever lokale CLI voor zeer gevoelige code
🔧 Hoe de HCL Formatter te Gebruiken for hcl-formatter
1. Plak of Sleep Je Code
Open je HCL/Terraform-bestand (.tf, HCL-gebaseerde .tfvars, .hcl, .pkr.hcl, etc.) en plak de inhoud in de editor, of sleep het bestand als je browser dit ondersteunt.
2. Klik op "Formatteren"
Klik op de knop Formatteren. Je configuratie wordt naar een beveiligde backend gestuurd die terraform fmt-stijlregels toepast op inspringing, spatiëring en lay-out, en vervolgens geformatteerde HCL2 teruggeeft.
3. Bekijk, Kopieer of Download
Controleer het resultaat in de editor, kopieer het vervolgens terug naar je IDE of download het geformatteerde bestand en commit het naar je repository.
Technische Specificaties
Uitvoeringsmodel
De formatter is server-gestuurd en ontworpen om terraform fmt-stijl lay-outnormalisatie voor HCL2 na te bootsen.
| Aspect | Detail |
|---|---|
| Modus | Server-gestuurd (geen in-browser WASM) |
| Bereik | Witruimte, inspringing, spatiëring, basislay-out |
| Herordening | Geen semantische herordening van resources of blokken |
| Opties | Geen — enkele Formatteren-actie voor voorspelbare uitvoer |
| Limieten | Ongeveer 1–2 MB invoer, ~25s server time-out (onderhevig aan afstemming) |
| Retentie | Tijdelijke verwerking — invoer wordt na formattering verwijderd |
Taaldekking
Begrijpt veelvoorkomende HCL2-constructies gebruikt in Terraform en andere HashiCorp-tools.
| Constructie | Voorbeelden | Opmerkingen |
|---|---|---|
| Blokken | resource, variable, output, module, locals, job, task | Geneste blokstructuur behouden |
| Attributen | name = "web", count = 2 | Spatiëring genormaliseerd rond = en tussen attributen |
| Collecties | [1, 2, 3], { key = value } | Uniforme lay-out voor lijsten en kaarten/objecten |
| Heredocs | <<-EOF ... EOF | Markeringen behouden; inspringing genormaliseerd waar mogelijk |
| Opmerkingen | # en // stijl opmerkingen | Waar mogelijk bewaard om intentie en documentatie te behouden |
Mini Voor/Na
Een klein voorbeeld van opschoning van inspringing en spatiëring in een Terraform resource.
# Voor
resource "aws_s3_bucket" "b"{bucket="demo"
tags={Name="demo"}}
# Na
resource "aws_s3_bucket" "b" {
bucket = "demo"
tags = {
Name = "demo"
}
}
Fouten & Randgevallen
Als formatteren mislukt of een fout retourneert, is dit meestal te wijten aan parseerproblemen in de HCL2 invoer.
| Symptoom | Waarschijnlijke oorzaak | Wat te controleren |
|---|---|---|
| Geen uitvoer / parseerfout | Niet-gesloten accolade, haakje of haakjes | Tel overeenkomende { }, [ ], ( ) paren en sluit alle blokken |
| Heredoc problemen | Ontbrekende of niet-overeenkomende terminator | Zorg ervoor dat markeringen zoals EOF exact en op hun eigen regel verschijnen |
| Gemengde stijlen | Tabs/spaties of verdwaalde karakters | Normaliseer inspringing, verwijder verdwaalde controlekarakters |
| .tfvars verwarring | JSON vs HCL syntaxis | Gebruik JSON formatter of terraform fmt voor *.tfvars.json bestanden |
Commandoregel Alternatieven
Voor dagelijkse Infrastructure as Code workflows, gebruik officiële formatters lokaal en in CI, en bewaar deze online tool voor snelle ad-hoc opschoningen.
macOS / Linux
Terraform: formatteer ter plaatse
terraform fmtHerschrijft .tf en HCL-gebaseerde .tfvars bestanden in de huidige directory.
Terraform: recursieve CI controle (geen schrijven)
terraform fmt -check -recursiveSluit af met niet-nul als enig bestand formattering nodig heeft — perfect voor CI en pre-commit hooks.
Packer: formatteer sjabloon
packer fmt pad/naar/sjabloon.pkr.hclFormatteert het opgegeven Packer HCL bestand ter plaatse.
Windows (PowerShell)
Formatteer alle Terraform-bestanden recursief
Get-ChildItem -Recurse -Filter *.tf | ForEach-Object { terraform fmt $_.FullName }Voert terraform fmt uit op elk .tf-bestand dat onder de huidige map wordt gevonden.
CI-stijl opmaakcontrole
terraform fmt -check -recursiveGebruik in bouwpijplijnen om te falen wanneer de opmaak verouderd is.
GitHub Actions
Laat de build mislukken als opmaak vereist is
steps:
- uses: hashicorp/setup-terraform@v3
- run: terraform fmt -check -recursiveStopt de workflow wanneer een Terraform-bestand niet correct is opgemaakt.
Automatisch opmaken bij pull requests (optioneel)
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)Past terraform fmt toe en pusht een alleen-opmaak commit terug naar de branch.
Praktische Toepassingen
PR Hygiëne & Reviews
Normaliseer witruimte en inspringing zodat reviewers zich kunnen concentreren op werkelijke infrastructuurwijzigingen.
- Voer opmaak uit voordat een pull request wordt geopend
- Verminder pietluttige stijlopmerkingen in Terraform-reviews
- Houd git verschillen klein en betekenisvol
Terraform Module Ontwikkeling
Houd modules consistent tussen teams, repositories en registers.
- Lijn variabele en output blokken uit in gedeelde modules
- Zorg ervoor dat voorbeeldconfiguraties overeenkomen met een enkele huisstijl
CI Bewaking
Gebruik terraform fmt controles in CI om stijldrift in de loop van de tijd te voorkomen.
- Voeg `terraform fmt -check -recursive` toe als een verplichte pijplijnstap
- Blokkeer samenvoegingen tot alle .tf-bestanden zijn opgemaakt
Onboarding & Documentatie
Leesbare voorbeelden helpen nieuwe teamleden snel zowel Terraform als de huisstijl te leren.
- Publiceer consistent opgemaakte fragmenten in README's
- Gebruik schone voorbeelden in interne Terraform-trainingssessies
❓ Frequently Asked Questions
🔒Wordt mijn code lokaal verwerkt?
🛡️Kan ik hier geheimen plakken?
🧩Verandert opmaak het gedrag van configuraties?
📄Kan ik .tfvars-bestanden opmaken?
JSON-gebaseerde variabelen via `.tfvars.json`; deze volgen JSON-regels en worden beter afgehandeld door een JSON-formatter of door `terraform fmt` zelf.⚙️Hoe verschilt dit van `terraform fmt`?
🧯Waarom is de opmaak mislukt?
JSON-stijl tfvars met HCL-syntax. Los het structurele probleem op (of gebruik het juiste dialect/formatter) en probeer het opnieuw.Pro Tips
Voer `terraform fmt -check -recursive` uit in CI om opmaakverschuiving in grote infrastructuurrepositories te voorkomen.
Vermijd het plakken van geheimen of staat-gerelateerde gegevens in online tools; houd configuratievoorbeelden schoon en gebruik lokale CLI-formatters voor echte infrastructuurcode.
Normaliseer afsluitende nieuwe regels en inspringing in je editor, zodat Terraform-bestanden schone, stabiele verschillen produceren op alle platforms.
Voeg een pre-commit hook toe die `terraform fmt` uitvoert, zodat pull-requests al geformatteerd aankomen en reviewgesprekken zich kunnen richten op architectuur en risico.
Additional Resources
Other Tools
- CSS Opmaker
- HTML Opmaker
- Javascript Opmaker
- PHP Opmaker
- Kleurkiezer
- Sprite Extractor
- Base64 Decoder
- Base64 Encoder
- Csharp Formatter
- Csv Formatter
- Dockerfile Formatter
- Elm Formatter
- ENV Formatter
- Go Formatter
- Graphql Formatter
- INI Formatter
- JSON Formatter
- Latex Formatter
- Markdown Formatter
- Objectivec Formatter
- Php Formatter
- Proto Formatter
- Python Formatter
- Ruby Formatter
- Rust Formatter
- Scala Formatter
- Shell Script Formatter
- SQL Formatter
- SVG Formatter
- Swift Formatter
- TOML Formatter
- Typescript Formatter
- XML Formatter
- YAML Formatter
- Yarn Formatter
- CSS Verkleiner
- Html Minifier
- Javascript Minifier
- JSON Verkleiner
- XML Verkleiner
- Http Headers Viewer
- PDF Naar Tekst
- Regex Tester
- Serp Rang Checker
- Whois Opzoeken