Perché Usare il Nostro Formattatore Scala
- Formatta all'istante codice Scala non strutturato o disallineato
- Corregge la spaziatura attorno a tipi, parametri e operatori
- Normalizza lo stile delle parentesi graffe per classi, oggetti, tratti e metodi
- Applica l'a capo in stile scalafmt per espressioni lunghe e catene di metodi
- Supporta file `.scala`, script `.sc` e file di build `.sbt`
- Il codice viene formattato tramite un backend sicuro – non condiviso o indicizzato
- Interfaccia editor reattiva che funziona su laptop, desktop e tablet
🛠️ Come Formattare il Codice Scala Online for scala-formatter
1. Incolla o Carica il Tuo Codice Scala
📥 Incolla il tuo codice Scala nell'editor o trascina un file `.scala`, `.sc` o `.sbt`. L'editor applica l'evidenziazione della sintassi Scala per una rapida scansione del codice.
2. Clicca "Formatta"
⚙️ Premi il pulsante **Formatta**. Il tuo codice viene inviato tramite HTTPS a un formattatore scalafmt-style che riorganizza spazi, rientri e interruzioni di riga senza modificare la semantica.
3. Rivedi il Risultato
🔍 Confronta la versione ripulita con l'originale. Parentesi graffe, spaziature e righe vuote vengono normalizzate per una struttura del codice più leggibile.
4. Copia o Scarica
📤 Copia il codice Scala formattato nel tuo IDE o scaricalo come file `.scala` pronto per commit, revisione del codice o distribuzione.
Specifiche Tecniche
Comportamento di Stile (Scalafmt-Style)
Il formattatore mira a riflettere le convenzioni scalafmt comuni per un aspetto idiomatico nei progetti Scala moderni.
| Aspetto | Comportamento | Note |
|---|---|---|
| Rientri e Parentesi Graffe | Rientri coerenti per `class`, `object`, `trait`, `def`, `if`, `match` e `for` | Rende il flusso di controllo annidato e i pattern match più facili da leggere. |
| Spaziatura Tipi e Parametri | Normalizza gli spazi attorno a due punti, frecce e liste di parametri | Ad esempio: `def f(x: Int): String` invece di `def f(x:Int):String`. |
| Import e Pacchetti | Mantiene i blocchi package e import strutturati e separati dalle definizioni | Migliora la navigazione e la coerenza tra i file. |
| Righe Vuote | Standardizza le righe vuote attorno alle definizioni di primo livello | Separa sezioni logiche come modelli, servizi e helper. |
| Idempotenza | Eseguire la formattazione più volte produce lo stesso risultato | Sicuro da riformattare tutte le volte che vuoi senza deriva dello stile. |
Compatibilità con le Versioni di Scala
Il formattatore è progettato sia per la sintassi di Scala 2 che di Scala 3.
| Caratteristica | Supporto | Note |
|---|---|---|
| Scala 2.x | ✅ Sì | Funziona con pattern comuni come impliciti, oggetti companion e classiche for-comprehension. |
| Scala 3 (Dotty) | ✅ Sì | Comprende given/using, metodi di estensione, enum e altre costruzioni di Scala 3. |
| File di build SBT | ✅ Sì | Formatta i file `.sbt` utilizzati nelle build e nelle definizioni delle dipendenze. |
Input Supportati e Limiti
Ottimizzato per file di progetto reali, non solo piccoli frammenti.
| Parametro | Limite / Comportamento | Note |
|---|---|---|
| Estensioni file | .scala, .sc, .sbt | File sorgente, script e definizioni di build. |
| Tipi MIME | text/x-scala | Utilizzato internamente per l'evidenziazione della sintassi. |
| Dimensione massima input | ≈ 2 MB di codice sorgente | Il codice generato estremamente grande è meglio formattato tramite scalafmt locale. |
| Codifica | UTF-8 consigliato | Il contenuto non UTF-8 dovrebbe essere convertito prima della formattazione. |
Esecuzione e Sicurezza
La formattazione viene eseguita tramite un backend privato e sicuro invece di servizi pubblici di terze parti.
| Aspetto | Comportamento | Note |
|---|---|---|
| Trasporto | Chiamate HTTPS all'API di formattazione Scala | Il tuo codice viene trasmesso in modo sicuro e non è esposto pubblicamente. |
| Timeout | ~25 secondi per richiesta | Previene lavori di formattazione a lunga esecuzione o bloccati su input patologici. |
| Semantica | Trasformazioni solo di layout | Il formattatore cambia spazi bianchi e layout, non la logica del tuo programma. |
Usa Scalafmt nel Tuo Flusso di Lavoro Locale
Per il controllo completo e la formattazione su tutto il repository, installa scalafmt e integralo nel tuo build o pipeline CI:
Universale (via sbt)
Aggiungi scalafmt al tuo progetto
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")Aggiunge il plugin sbt così puoi eseguire scalafmt dalla shell sbt.
Formatta tutte le sorgenti
sbt scalafmtAllFormatta tutti i file Scala e sbt nel tuo progetto usando `.scalafmt.conf`.
Controlla la formattazione in CI
sbt scalafmtCheckAllFa fallire il build se i file non sono formattati correttamente.
Casi d'Uso Comuni
Backend e Servizi FP
Mantieni grandi backend Scala e codebase FP coerenti e facili da revisionare.
- Standardizza lo stile tra progetti Akka, ZIO, Cats Effect o Play.
- Pulisci il codice prima di aprire pull request o condividere esempi.
- Normalizza il formato dopo grandi refactor o migrazioni di librerie.
object A{def main(args:Array[String]){println("hi")}}
object A {
def main(args: Array[String]): Unit = {
println("hi")
}
}
Apprendimento e Insegnamento Scala
Concentrati sui concetti funzionali e sui tipi invece che su guerre di spaziatura.
- Auto-formatta i compiti degli studenti prima di revisionare logica e pattern.
- Mostra esempi prima/dopo la formattazione quando insegni lo stile Scala.
- Prepara frammenti di codice puliti per slide, documentazione e post di blog.
Script di Build e Tooling
Mantieni i file di build `.sbt` e i piccoli script Scala ordinati.
- Formatta le impostazioni sbt e i blocchi di dipendenze per una manutenzione più facile.
- Pulisci gli script helper usati per migrazioni o strumenti interni.
❓ Frequently Asked Questions
❓Cos'è scalafmt e come si relaziona questo strumento ad esso?
🔧Posso personalizzare tutte le regole di scalafmt qui?
🌐Supporta la sintassi di Scala 3?
🔒Il mio codice Scala viene inviato a un server pubblico?
HTTPS a un backend di formattazione privato dedicato a questo strumento e non viene condiviso o indicizzato. Per codice altamente confidenziale o proprietario, puoi eseguire scalafmt localmente invece.⚙️La formattazione cambierà il comportamento del mio programma Scala?
Pro Tips
Mantieni un file `.scalafmt.conf` nel tuo repository in modo che il tuo editor, CI e `sbt scalafmt` utilizzino tutti lo stesso stile.
Esegui un commit dedicato "solo formattazione" prima dei refactoring in modo che i diff successivi si concentrino sulle vere modifiche del codice, non sugli spazi bianchi.
Utilizza una larghezza massima di riga coerente nel tuo team per evitare diff rumorosi e stili contrastanti.
Quando insegni, mostra prima Scala disordinato, poi la versione formattata per evidenziare come il layout migliori la leggibilità.
Additional Resources
Other Tools
- Abbellitore CSS
- Abbellitore HTML
- Abbellitore Javascript
- Abbellitore PHP
- Selettore Colori
- Estrattore Sprite
- Decodificatore Base64
- Codificatore Base64
- Formattatore Csharp
- Formattatore CSV
- Dockerfile Formatter
- Formattatore Elm
- Formattatore ENV
- Formattatore Go
- Formattatore GraphQL
- Formattatore HCL
- Formattatore INI
- Formattatore JSON
- Formattatore LaTeX
- Formattatore Markdown
- Formattatore Objective-C
- Php Formatter
- Formattatore Proto
- Formattatore Python
- Formattatore Ruby
- Formattatore Rust
- Formattatore Script Shell
- Formattatore SQL
- Formattatore SVG
- Formattatore Swift
- Formattatore TOML
- Typescript Formatter
- Formattatore XML
- Formattatore YAML
- Formattatore Yarn
- Minificatore CSS
- Html Minifier
- Javascript Minifier
- Minificatore JSON
- Minificatore XML
- Visualizzatore Intestazioni HTTP
- PDF a Testo
- Tester Regex
- Controllore Posizione SERP
- Ricerca Whois