Formateador JavaScript
Indenta un script para que puedas leerlo, enteramente en tu navegador. No se elimina nunca ningún salto de línea que hayas escrito.
Se ejecuta enteramente en tu navegador. No se sube, registra ni guarda nada.
Pega un script minificado o mal indentado y léelo como es debido. El formateo se hace en tu navegador, y del código no se cambia nada más allá de sus espacios en blanco.
Cómo funciona
El script se divide en piezas —comentarios, cadenas, plantillas literales, expresiones regulares, números, nombres, operadores, paréntesis y llaves— y luego se vuelve a escribir. Un bloque recibe sus propias líneas y un nivel de sangría, una sentencia recibe una línea, y un objeto literal repartido en varias líneas recibe una entrada por línea.
No se elimina nunca ningún salto de línea que hayas escrito, y esa es la regla de la que se deriva todo lo demás. En JavaScript el final de una línea puede terminar una sentencia —la inserción automática de punto y coma—, así que unir dos líneas en una puede cambiar lo que hace un programa, o impedir que se analice. Los saltos solo se añaden: alrededor de las llaves de un bloque, después del punto y coma de una sentencia, entre las entradas de un objeto y entre una llave de cierre y la palabra que abre la sentencia siguiente. Ninguno de esos puede cambiar un significado.
Una línea que el código fuente partió en mitad de una sentencia —una cadena de llamadas, una condición larga, las ramas de un condicional— se indenta un nivel respecto a la línea de encima, para que se siga leyendo como parte de ella.
Ejemplos
| Caso | Entrada | Resultado |
|---|---|---|
| Una función escrita en una línea | function add(a,b){const total=a+b;return total} | function add(a, b) { const total = a + b; return total } |
Preguntas frecuentes
¿Se envía mi código a alguna parte?
No. El formateador es JavaScript ejecutándose en esta página. No se sube nada, no se registra nada y no se almacena nada: puedes desconectar la red y la herramienta sigue funcionando.
¿Añadirá los puntos y comas que me he dejado?
No. Un punto y coma que no se escribió es a veces un punto y coma que no debe escribirse, y distinguir esos casos necesita un analizador y no una pasada de disposición. El formateador deja esa cuestión en paz: no añade nunca un punto y coma y no elimina nunca un salto de línea, así que el código escrito sin ellos sigue funcionando exactamente igual.
¿También minifica?
No, y es una decisión y no un olvido. Minificar significa renombrar, reescribir y decidir qué saltos de línea tienen significado: tres juicios que esta herramienta existe precisamente para no hacer. Equivocarse en cualquiera de ellos rompe un programa de una forma de la que te enteras en producción.
¿Entiende TypeScript o JSX?
En parte, y con honestidad. Los dos se leen como los tokens que son, así que no se pierde nada y los paréntesis y llaves siguen anidando, pero una anotación de tipo y una etiqueta no son cosas cuya forma conozca la disposición. Espera un resultado sensato más que uno idiomático.
¿Me dirá si mi script es válido?
No. No tiene gramática, así que no puede: sabe dónde acaba una pieza de código y empieza la siguiente, que basta para maquetar un archivo y no basta para juzgarlo. Un archivo que no puede leer en absoluto —una cadena, un comentario o una plantilla literal sin cerrar— se rechaza en lugar de reformatearse en algo verosímil.
Conviene saber
- La salida contiene exactamente las piezas que contenía la entrada. No se añade nada, no se quita nada y no se reordena nada: solo se mueven los espacios en blanco de entre medias.
- Una barra es o bien una división o bien el comienzo de una expresión regular, y ningún tokenizador puede estar seguro de cuál sin una gramática. Este lo decide a partir del token anterior, y lee como división un literal que tendría que abarcar un salto de línea, ya que una expresión regular no puede contener uno. Una suposición equivocada cuesta prolijidad y nada más, porque todas las piezas se copian tal cual se escribieron.
- Una plantilla literal vuelve carácter a carácter, de acento grave a acento grave. Sus espacios en blanco son el texto que mostrará tu página, así que no son espacios que el formateador pueda tocar.
- La disposición es determinista: el mismo script con la misma opción produce siempre la misma salida, y formatear un script ya formateado no cambia nada.
Fuentes
Todas las herramientas de Código