Por Qué Usar Nuestro Formateador Scala
- Formatea al instante código Scala desestructurado o desalineado
- Corrige el espaciado alrededor de tipos, parámetros y operadores
- Normaliza el estilo de llaves para clases, objetos, traits y métodos
- Aplica ajuste de líneas estilo scalafmt para expresiones largas y cadenas de métodos
- Soporta archivos `.scala`, scripts `.sc` y archivos de build `.sbt`
- El código se formatea a través de un backend seguro – no se comparte ni indexa
- Interfaz de editor adaptable que funciona en portátil, escritorio y tableta
🛠️ Cómo Formatear Código Scala en Línea for scala-formatter
1. Pega o Carga Tu Código Scala
📥 Pega tu código Scala en el editor o arrastra y suelta un archivo `.scala`, `.sc` o `.sbt`. El editor aplica resaltado de sintaxis Scala para que puedas escanear rápidamente tu código.
2. Haz clic en "Formatear"
⚙️ Pulsa el botón **Formatear**. Tu código se envía por HTTPS a un formateador de estilo scalafmt que reorganiza espacios en blanco, sangrado y saltos de línea sin cambiar la semántica.
3. Revisa el Resultado
🔍 Compara la versión limpia con tu original. Las llaves, espacios y líneas en blanco se normalizan para que la estructura de tu código sea más fácil de seguir.
4. Copia o Descarga
📤 Copia el código Scala formateado de vuelta a tu IDE, o descárgalo como un archivo `.scala` listo para commit, revisión de código o despliegue.
Especificaciones Técnicas
Comportamiento de Estilo (Estilo Scalafmt)
El formateador busca reflejar las convenciones comunes de scalafmt para que tu código luzca idiomático en proyectos Scala modernos.
| Aspecto | Comportamiento | Notas |
|---|---|---|
| Sangrado y Llaves | Sangrado consistente para `class`, `object`, `trait`, `def`, `if`, `match` y `for` | Hace que el flujo de control anidado y las coincidencias de patrones sean más fáciles de leer. |
| Espaciado de Tipos y Parámetros | Normaliza espacios alrededor de dos puntos, flechas y listas de parámetros | Por ejemplo: `def f(x: Int): String` en lugar de `def f(x:Int):String`. |
| Imports y Paquetes | Mantiene los bloques de paquete e import estructurados y separados de las definiciones | Mejora la navegación y consistencia entre archivos. |
| Líneas en Blanco | Estandariza líneas en blanco alrededor de definiciones de nivel superior | Separa secciones lógicas como modelos, servicios y ayudantes. |
| Idempotencia | Ejecutar el formateo múltiples veces produce el mismo resultado | Seguro de reformatear tantas veces como desees sin desviación de estilo. |
Compatibilidad de Versiones de Scala
El formateador está diseñado para sintaxis tanto de Scala 2 como de Scala 3.
| Característica | Soporte | Notas |
|---|---|---|
| Scala 2.x | ✅ Sí | Funciona con patrones comunes como implícitos, objetos compañeros y comprensiones clásicas de for. |
| Scala 3 (Dotty) | ✅ Sí | Comprende given/using, métodos de extensión, enumeraciones y otras construcciones de Scala 3. |
| Archivos de construcción SBT | ✅ Sí | Formatea archivos `.sbt` utilizados en construcciones y definiciones de dependencias. |
Entradas Soportadas y Límites
Optimizado para archivos de proyectos reales, no solo fragmentos pequeños.
| Parámetro | Límite / Comportamiento | Notas |
|---|---|---|
| Extensiones de archivo | .scala, .sc, .sbt | Archivos fuente, scripts y definiciones de construcción. |
| Tipos MIME | text/x-scala | Utilizado internamente para resaltado de sintaxis. |
| Tamaño máximo de entrada | ≈ 2 MB de código fuente | El código generado extremadamente grande se formatea mejor mediante scalafmt local. |
| Codificación | UTF-8 recomendado | El contenido no UTF-8 debe convertirse antes del formateo. |
Ejecución y Seguridad
El formateo se realiza a través de un backend privado y seguro en lugar de servicios públicos de terceros.
| Aspecto | Comportamiento | Notas |
|---|---|---|
| Transporte | Llamadas HTTPS a la API de formateo de Scala | Tu código se transmite de forma segura y no se expone públicamente. |
| Tiempo de espera | ~25 segundos por solicitud | Evita trabajos de formateo de larga duración o bloqueados en entradas problemáticas. |
| Semántica | Transformaciones solo de diseño | El formateador cambia espacios en blanco y diseño, no la lógica de tu programa. |
Usa Scalafmt en tu Flujo de Trabajo Local
Para control total y formateo en todo el repositorio, instala scalafmt e intégralo en tu compilación o pipeline de CI:
Universal (vía sbt)
Añade scalafmt a tu proyecto
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")Añade el plugin de sbt para que puedas ejecutar scalafmt desde la shell de sbt.
Formatea todas las fuentes
sbt scalafmtAllFormatea todos los archivos Scala y sbt en tu proyecto usando `.scalafmt.conf`.
Verifica el formateo en CI
sbt scalafmtCheckAllFalla la compilación si los archivos no están correctamente formateados.
Casos de Uso Comunes
Backend y Servicios de FP
Mantén grandes backends de Scala y bases de código FP consistentes y fáciles de revisar.
- Estandariza el estilo en proyectos de Akka, ZIO, Cats Effect o Play.
- Limpia el código antes de abrir pull requests o compartir ejemplos.
- Normaliza el formato después de grandes refactorizaciones o migraciones de bibliotecas.
object A{def main(args:Array[String]){println("hi")}}
object A {
def main(args: Array[String]): Unit = {
println("hi")
}
}
Aprendizaje y Enseñanza de Scala
Enfócate en conceptos funcionales y tipos en lugar de guerras de espaciado.
- Auto-formatea las entregas de estudiantes antes de revisar lógica y patrones.
- Muestra ejemplos de antes/después del formateo al enseñar estilo de Scala.
- Prepara fragmentos de código limpios para diapositivas, documentos y publicaciones de blog.
Scripts de Compilación y Herramientas
Mantén archivos de compilación `.sbt` y pequeños scripts Scala ordenados.
- Formatea configuraciones de sbt y bloques de dependencias para un mantenimiento más fácil.
- Limpia scripts auxiliares usados para migraciones o herramientas internas.
❓ Frequently Asked Questions
❓¿Qué es scalafmt y cómo se relaciona esta herramienta con él?
🔧¿Puedo personalizar todas las reglas de scalafmt aquí?
🌐¿Admite sintaxis de Scala 3?
🔒¿Se envía mi código Scala a un servidor público?
HTTPS a un backend de formateo privado dedicado a esta herramienta y no se comparte ni indexa. Para código altamente confidencial o propietario, puede ejecutar scalafmt localmente.⚙️¿Cambiará el formateo el comportamiento de mi programa Scala?
Pro Tips
Mantenga un archivo `.scalafmt.conf` en su repositorio para que su editor, CI y `sbt scalafmt` usen todos el mismo estilo.
Ejecute un commit dedicado "solo formateo" antes de refactorizaciones para que los diffs posteriores se centren en cambios de código reales, no en espacios en blanco.
Use un ancho máximo de línea consistente en todo su equipo para evitar diffs ruidosos y estilos conflictivos.
Al enseñar, muestre primero Scala desordenado, luego la versión formateada para resaltar cómo el diseño mejora la legibilidad.
Additional Resources
Other Tools
- Embellecedor CSS
- Embellecedor HTML
- Embellecedor JavaScript
- Embellecedor PHP
- Selector de Color
- Extractor de Sprites
- Decodificador Base64
- Codificador Base64
- Formateador C#
- Formateador CSV
- Dockerfile Formatter
- Formateador Elm
- Formateador ENV
- Formateador Go
- Formateador GraphQL
- Formateador HCL
- Formateador INI
- Formateador JSON
- Formateador LaTeX
- Formateador Markdown
- Formateador Objective-C
- Php Formatter
- Formateador Proto
- Formateador Python
- Formateador Ruby
- Formateador Rust
- Formateador de Scripts de Shell
- Formateador SQL
- Formateador SVG
- Formateador Swift
- Formateador TOML
- Typescript Formatter
- Formateador XML
- Formateador YAML
- Formateador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Visor de Encabezados HTTP
- PDF a Texto
- Probador de Expresiones Regulares
- Verificador de Posición en SERP
- Consulta Whois