Warum unseren Scala-Formatierer verwenden
- Sofort unstrukturierten oder falsch ausgerichteten Scala-Code formatieren
- Abstände um Typen, Parameter und Operatoren korrigieren
- Klammerstil für Klassen, Objekte, Traits und Methoden normalisieren
- Scalafmt-artige Zeilenumbrüche für lange Ausdrücke und Methodenketten anwenden
- Unterstützt `.scala`, `.sc`-Skripte und `.sbt`-Build-Dateien
- Code wird über ein gesichertes Backend formatiert – nicht geteilt oder indiziert
- Responsive Editor-Oberfläche, die auf Laptop, Desktop und Tablet funktioniert
🛠️ So formatieren Sie Scala-Code online for scala-formatter
1. Fügen Sie Ihren Scala-Code ein oder laden Sie ihn
📥 Fügen Sie Ihren Scala-Code in den Editor ein oder ziehen Sie eine `.scala`-, `.sc`- oder `.sbt`-Datei per Drag-and-Drop hinein. Der Editor wendet Scala-Syntaxhervorhebung an, damit Sie Ihren Code schnell überfliegen können.
2. Klicken Sie auf "Formatieren"
⚙️ Drücken Sie die Schaltfläche **Formatieren**. Ihr Code wird über HTTPS an einen scalafmt-artigen Formatierer gesendet, der Leerzeichen, Einzüge und Zeilenumbrüche neu organisiert, ohne die Semantik zu ändern.
3. Überprüfen Sie das Ergebnis
🔍 Vergleichen Sie die bereinigte Version mit Ihrem Original. Geschweifte Klammern, Abstände und Leerzeilen werden normalisiert, sodass die Struktur Ihres Codes leichter zu verfolgen ist.
4. Kopieren oder Herunterladen
📤 Kopieren Sie den formatierten Scala-Code zurück in Ihre IDE oder laden Sie ihn als `.scala`-Datei herunter, bereit für Commit, Code-Review oder Bereitstellung.
Technische Spezifikationen
Formatierungsverhalten (Scalafmt-Stil)
Der Formatierer zielt darauf ab, gängige scalafmt-Konventionen widerzuspiegeln, sodass Ihr Code in modernen Scala-Projekten idiomatisch aussieht.
| Aspekt | Verhalten | Hinweise |
|---|---|---|
| Einrückung & geschweifte Klammern | Konsistente Einrückung für `class`, `object`, `trait`, `def`, `if`, `match` und `for` | Macht verschachtelte Kontrollstrukturen und Pattern-Matches leichter lesbar. |
| Typ- & Parameterabstände | Normalisiert Abstände um Doppelpunkte, Pfeile und Parameterlisten | Zum Beispiel: `def f(x: Int): String` statt `def f(x:Int):String`. |
| Imports & Packages | Hält Package- und Import-Blöcke strukturiert und von Definitionen getrennt | Verbessert die Navigation und Konsistenz über Dateien hinweg. |
| Leerzeilen | Standardisiert Leerzeilen um Top-Level-Definitionen | Trennt logische Abschnitte wie Modelle, Services und Helfer. |
| Idempotenz | Mehrmaliges Ausführen der Formatierung liefert dasselbe Ergebnis | Sicher so oft wie gewünscht neu zu formatieren, ohne Stilabweichungen. |
Scala-Version-Kompatibilität
Der Formatierer ist für sowohl Scala 2- als auch Scala 3-Syntax ausgelegt.
| Funktion | Unterstützung | Hinweise |
|---|---|---|
| Scala 2.x | ✅ Ja | Funktioniert mit gängigen Mustern wie Implicits, Begleiterobjekten und klassischen For-Comprehensions. |
| Scala 3 (Dotty) | ✅ Ja | Versteht given/using, Erweiterungsmethoden, Enums und andere Scala 3-Konstrukte. |
| SBT-Build-Dateien | ✅ Ja | Formatiert `.sbt`-Dateien, die in Builds und Abhängigkeitsdefinitionen verwendet werden. |
Unterstützte Eingaben & Grenzen
Optimiert für reale Projektdateien, nicht nur kleine Ausschnitte.
| Parameter | Grenze / Verhalten | Hinweise |
|---|---|---|
| Dateierweiterungen | .scala, .sc, .sbt | Quelldateien, Skripte und Build-Definitionen. |
| MIME-Typen | text/x-scala | Wird intern für Syntaxhervorhebung verwendet. |
| Maximale Eingabegröße | ≈ 2 MB Quellcode | Extrem großer generierter Code sollte besser über lokales scalafmt formatiert werden. |
| Kodierung | UTF-8 empfohlen | Nicht-UTF-8-Inhalt sollte vor der Formatierung konvertiert werden. |
Ausführung & Sicherheit
Die Formatierung erfolgt über ein privates, gesichertes Backend anstelle öffentlicher Drittanbieterdienste.
| Aspekt | Verhalten | Hinweise |
|---|---|---|
| Transport | HTTPS-Aufrufe an die Scala-Formatierungs-API | Ihr Code wird sicher übertragen und nicht öffentlich zugänglich gemacht. |
| Timeout | ~25 Sekunden pro Anfrage | Verhindert langlaufende oder festhängende Formatierungsaufträge bei problematischen Eingaben. |
| Semantik | Nur Layout-Transformationen | Der Formatierer ändert Leerzeichen und Layout, nicht Ihre Programmlogik. |
Verwenden Sie Scalafmt in Ihrem lokalen Workflow
Für volle Kontrolle und repositoryweite Formatierung installieren Sie scalafmt und integrieren es in Ihre Build- oder CI-Pipeline:
Universell (über sbt)
Fügen Sie scalafmt zu Ihrem Projekt hinzu
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")Fügt das sbt-Plugin hinzu, damit Sie scalafmt aus der sbt-Shell ausführen können.
Formatieren Sie alle Quellen
sbt scalafmtAllFormatiert alle Scala- und sbt-Dateien in Ihrem Projekt mit `.scalafmt.conf`.
Überprüfen Sie die Formatierung in CI
sbt scalafmtCheckAllLässt den Build fehlschlagen, wenn Dateien nicht korrekt formatiert sind.
Häufige Anwendungsfälle
Backend & FP-Dienste
Halten Sie große Scala-Backends und FP-Codebasen konsistent und leicht überprüfbar.
- Standardisieren Sie den Stil über Akka, ZIO, Cats Effect oder Play-Projekte hinweg.
- Bereinigen Sie Code vor dem Öffnen von Pull-Requests oder dem Teilen von Beispielen.
- Normalisieren Sie das Format nach großen Refactorings oder Bibliotheksmigrationen.
object A{def main(args:Array[String]){println("hi")}}
object A {
def main(args: Array[String]): Unit = {
println("hi")
}
}
Scala Lernen & Lehren
Konzentrieren Sie sich auf funktionale Konzepte und Typen statt auf Leerzeichen-Diskussionen.
- Formatieren Sie Schülerabgaben automatisch, bevor Logik und Muster überprüft werden.
- Zeigen Sie Vorher/Nachher-Formatierungsbeispiele beim Unterrichten von Scala-Stil.
- Bereiten Sie saubere Code-Ausschnitte für Folien, Dokumentationen und Blogbeiträge vor.
Build- & Tooling-Skripte
Halten Sie `.sbt`-Build-Dateien und kleine Scala-Skripte ordentlich.
- Formatieren Sie sbt-Einstellungen und Abhängigkeitsblöcke für einfachere Wartung.
- Bereinigen Sie Hilfsskripte, die für Migrationen oder interne Tools verwendet werden.
❓ Frequently Asked Questions
❓Was ist scalafmt und wie verhält sich dieses Tool dazu?
🔧Kann ich hier alle scalafmt-Regeln anpassen?
🌐Unterstützt es Scala 3 Syntax?
🔒Wird mein Scala-Code an einen öffentlichen Server gesendet?
HTTPS an ein privates Formatierungs-Backend gesendet, das diesem Tool gewidmet ist, und wird nicht geteilt oder indiziert. Für hochvertraulichen oder proprietären Code können Sie scalafmt stattdessen lokal ausführen.⚙️Ändert die Formatierung das Verhalten meines Scala-Programms?
Pro Tips
Bewahren Sie eine `.scalafmt.conf`-Datei in Ihrem Repository auf, damit Ihr Editor, CI und `sbt scalafmt` alle denselben Stil verwenden.
Führen Sie vor Refactorings einen dedizierten "Nur Formatierung"-Commit durch, damit spätere Diffs sich auf echte Codeänderungen konzentrieren, nicht auf Leerzeichen.
Verwenden Sie eine konsistente maximale Zeilenbreite in Ihrem Team, um übermäßige Diffs und konfligierende Stile zu vermeiden.
Beim Unterrichten zeigen Sie zuerst unordentlichen Scala-Code, dann die formatierte Version, um hervorzuheben, wie Layout die Lesbarkeit verbessert.
Additional Resources
Other Tools
- CSS-Verschönerer
- HTML-Verschönerer
- JavaScript-Verschönerer
- PHP-Verschönerer
- Farbauswahl
- Sprite-Extraktor
- Base64-Decoder
- Base64-Encoder
- Csharp-Formatierer
- CSV-Formatierer
- Dockerfile Formatter
- Elm-Formatierer
- ENV-Formatierer
- Go-Formatierer
- GraphQL-Formatierer
- HCL-Formatierer
- INI-Formatierer
- JSON-Formatierer
- LaTeX-Formatierer
- Markdown-Formatierer
- Objective-C-Formatierer
- Php Formatter
- Proto-Formatierer
- Python-Formatierer
- Ruby-Formatierer
- Rust-Formatierer
- Shell-Skript-Formatierer
- SQL-Formatierer
- SVG-Formatierer
- Swift-Formatierer
- TOML-Formatierer
- Typescript Formatter
- XML-Formatierer
- YAML-Formatierer
- Yarn-Formatierer
- CSS-Minifizierer
- Html Minifier
- Javascript Minifier
- JSON-Minifizierer
- XML-Minifizierer
- HTTP-Header-Betrachter
- PDF zu Text
- Regex-Tester
- SERP-Rang-Prüfer
- Whois-Abfrage