Dlaczego warto używać naszego formatowania Scala
- Natychmiastowe formatowanie nieustrukturyzowanego lub źle wyrównanego kodu Scala
- Popraw odstępy wokół typów, parametrów i operatorów
- Normalizuj styl nawiasów dla klas, obiektów, cech i metod
- Zastosuj zawijanie linii w stylu scalafmt dla długich wyrażeń i łańcuchów metod
- Obsługuje pliki `.scala`, skrypty `.sc` i pliki budowania `.sbt`
- Kod jest formatowany przez zabezpieczony backend – nie jest udostępniany ani indeksowany
- Responsywny interfejs edytora działający na laptopie, komputerze stacjonarnym i tablecie
🛠️ Jak sformatować kod Scala online for scala-formatter
1. Wklej lub załaduj swój kod Scala
📥 Wklej swój kod Scala do edytora lub przeciągnij i upuść plik `.scala`, `.sc` lub `.sbt`. Edytor stosuje podświetlanie składni Scala, abyś mógł szybko przejrzeć swój kod.
2. Kliknij "Formatuj"
⚙️ Naciśnij przycisk **Formatuj**. Twój kod jest wysyłany przez HTTPS do formatownika w stylu scalafmt, który reorganizuje białe znaki, wcięcia i podziały wierszy bez zmiany semantyki.
3. Przejrzyj wynik
🔍 Porównaj oczyszczoną wersję z oryginałem. Nawiasy klamrowe, odstępy i puste linie są znormalizowane, dzięki czemu struktura kodu jest łatwiejsza do śledzenia.
4. Skopiuj lub pobierz
📤 Skopiuj sformatowany kod Scala z powrotem do swojego IDE lub pobierz go jako plik `.scala` gotowy do zatwierdzenia, przeglądu kodu lub wdrożenia.
Specyfikacje techniczne
Zachowanie stylizacji (Styl Scalafmt)
Formatownik ma na celu odzwierciedlenie powszechnych konwencji scalafmt, aby Twój kod wyglądał idiomatycznie w nowoczesnych projektach Scala.
| Aspekt | Zachowanie | Uwagi |
|---|---|---|
| Wcięcia i nawiasy klamrowe | Spójne wcięcia dla `class`, `object`, `trait`, `def`, `if`, `match` i `for` | Ułatwia czytanie zagnieżdżonego przepływu sterowania i dopasowań wzorców. |
| Odstępy typów i parametrów | Normalizuje spacje wokół dwukropków, strzałek i list parametrów | Na przykład: `def f(x: Int): String` zamiast `def f(x:Int):String`. |
| Importy i pakiety | Utrzymuje struktury pakietów i bloków importu oddzielone od definicji | Poprawia nawigację i spójność między plikami. |
| Puste linie | Standaryzuje puste linie wokół definicji najwyższego poziomu | Oddziela logiczne sekcje, takie jak modele, usługi i pomocniki. |
| Idempotencja | Wielokrotne uruchomienie formatowania daje ten sam wynik | Bezpieczne do wielokrotnego formatowania bez dryfu stylu. |
Kompatybilność wersji Scala
Formatowanie jest zaprojektowane zarówno dla składni Scala 2, jak i Scala 3.
| Funkcja | Wsparcie | Uwagi |
|---|---|---|
| Scala 2.x | ✅ Tak | Działa z typowymi wzorcami, takimi jak implicits, obiekty towarzyszące i klasyczne for-comprehensions. |
| Scala 3 (Dotty) | ✅ Tak | Rozumie given/using, metody rozszerzeń, enumy i inne konstrukcje Scala 3. |
| Pliki budowania SBT | ✅ Tak | Formatuje pliki `.sbt` używane w budowaniu i definicjach zależności. |
Obsługiwane wejścia i ograniczenia
Zoptymalizowane dla rzeczywistych plików projektów, nie tylko małych fragmentów.
| Parametr | Ograniczenie / Zachowanie | Uwagi |
|---|---|---|
| Rozszerzenia plików | .scala, .sc, .sbt | Pliki źródłowe, skrypty i definicje budowania. |
| Typy MIME | text/x-scala | Używane wewnętrznie do podświetlania składni. |
| Maksymalny rozmiar wejścia | ≈ 2 MB kodu źródłowego | Bardzo duże wygenerowane kody lepiej formatować przez lokalny scalafmt. |
| Kodowanie | Zalecane UTF-8 | Zawartość nie-UTF-8 powinna zostać przekonwertowana przed formatowaniem. |
Wykonanie i bezpieczeństwo
Formatowanie odbywa się przez prywatny, zabezpieczony backend zamiast publicznych, zewnętrznych usług.
| Aspekt | Zachowanie | Uwagi |
|---|---|---|
| Transport | Wywołania HTTPS do API formatowania Scala | Twój kod jest przesyłany bezpiecznie i nie jest publicznie udostępniany. |
| Limit czasu | ~25 sekund na żądanie | Zapobiega długotrwałym lub zablokowanym zadaniom formatowania przy patologicznych danych wejściowych. |
| Semantyka | Tylko przekształcenia układu | Formatowanie zmienia białe znaki i układ, a nie logikę programu. |
Używaj Scalafmt w lokalnym przepływie pracy
Aby uzyskać pełną kontrolę i formatowanie całego repozytorium, zainstaluj scalafmt i zintegruj go z procesem budowania lub potokiem CI:
Uniwersalne (przez sbt)
Dodaj scalafmt do projektu
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")Dodaje wtyczkę sbt, aby można było uruchamiać scalafmt z powłoki sbt.
Sformatuj wszystkie źródła
sbt scalafmtAllFormatuje wszystkie pliki Scala i sbt w projekcie przy użyciu `.scalafmt.conf`.
Sprawdź formatowanie w CI
sbt scalafmtCheckAllPowoduje niepowodzenie budowy, jeśli pliki nie są poprawnie sformatowane.
Typowe przypadki użycia
Backend i usługi FP
Utrzymuj duże backendy Scala i bazy kodu FP spójne i łatwe do przeglądu.
- Ujednolic styl w projektach Akka, ZIO, Cats Effect lub Play.
- Oczyść kod przed otwarciem pull requestów lub udostępnianiem przykładów.
- Normalizuj format po dużych refaktoryzacjach lub migracjach bibliotek.
object A{def main(args:Array[String]){println("hi")}}
object A {
def main(args: Array[String]): Unit = {
println("hi")
}
}
Nauka i nauczanie Scala
Skup się na koncepcjach funkcyjnych i typach zamiast na sporach o odstępy.
- Automatycznie formatuj prace studentów przed sprawdzeniem logiki i wzorców.
- Pokaż przykłady przed/po formatowaniu podczas nauczania stylu Scala.
- Przygotuj czyste fragmenty kodu do slajdów, dokumentacji i postów na blogu.
Skrypty budowania i narzędzi
Utrzymuj pliki budowania `.sbt` i małe skrypty Scala w porządku.
- Formatuj ustawienia sbt i bloki zależności dla łatwiejszej konserwacji.
- Oczyść skrypty pomocnicze używane do migracji lub wewnętrznych narzędzi.
❓ Frequently Asked Questions
❓Czym jest scalafmt i jak to narzędzie się z nim wiąże?
🔧Czy mogę dostosować wszystkie reguły scalafmt tutaj?
🌐Czy obsługuje składnię Scali 3?
🔒Czy mój kod Scali jest wysyłany na publiczny serwer?
HTTPS do prywatnego zaplecza formatowania dedykowanego temu narzędziu i nie jest udostępniany ani indeksowany. W przypadku wysoce poufnego lub zastrzeżonego kodu możesz uruchomić scalafmt lokalnie.⚙️Czy formatowanie zmieni działanie mojego programu w Scali?
Pro Tips
Przechowuj plik `.scalafmt.conf` w swoim repozytorium, aby twój edytor, CI i `sbt scalafmt` używały tego samego stylu.
Wykonaj dedykowany commit "tylko formatowanie" przed refaktoryzacją, aby późniejsze różnice skupiały się na rzeczywistych zmianach kodu, a nie na odstępach.
Używaj spójnej maksymalnej szerokości linii w zespole, aby uniknąć zakłócających różnic i konfliktów stylów.
Podczas nauczania pokazuj najpierw nieuporządkowaną Scalę, a następnie sformatowaną wersję, aby podkreślić, jak układ poprawia czytelność.
Additional Resources
Other Tools
- Upiększacz CSS
- Upiększacz HTML
- Upiększacz JavaScript
- Upiększacz PHP
- Wybór koloru
- Ekstraktor sprite'ów
- Dekoder Base64
- Koder Base64
- Formatowanie C#
- Formatowanie CSV
- Dockerfile Formatter
- Formatowanie Elm
- Formatowanie ENV
- Formatowanie Go
- Formatowanie GraphQL
- Formatowanie HCL
- Formatowanie INI
- Formatowanie JSON
- Formatowanie LaTeX
- Formatowanie Markdown
- Formatowanie Objective-C
- Php Formatter
- Formatowanie Proto
- Formatowanie Python
- Formatowanie Ruby
- Formatowanie Rust
- Formatowanie skryptów powłoki
- Formatowanie SQL
- Formatowanie SVG
- Formatowanie Swift
- Formatowanie TOML
- Typescript Formatter
- Formatowanie XML
- Formatowanie YAML
- Formatowanie Yarn
- Minifikator CSS
- Html Minifier
- Javascript Minifier
- Minifikator JSON
- Minifikator XML
- Przegląd nagłówków HTTP
- PDF do tekstu
- Tester wyrażeń regularnych
- Sprawdzanie pozycji w SERP
- Wyszukiwanie Whois