Formateador de código Perl
FormatoTodo se ejecuta en tu navegador: no se sube nada
Reindenta el código Perl. No se cuentan llaves: se usa un analizador de verdad (tree-sitter) que convierte el código en un árbol de sintaxis y decide a partir de la gramática cuántos niveles se sangra cada línea. ¿Por qué merece la pena un analizador aquí en especial? El método de «contar llaves» no distingue si una `}` está en el código o dentro de una cadena o un comentario, y Perl está lleno de esa trampa: `$h->{key}`, `"${name}"`, `q{...}`. Un archivo que contenga `"}"` descoloca todas las líneas siguientes y no da ninguna pista de qué falló. Con un árbol de sintaxis, los límites de bloque los pone el analizador. ⚠️ Solo cambia el espacio en blanco al principio de cada línea; ni un carácter del interior. Es una restricción deliberada: el peor fallo de un formateador no es una salida fea, sino romper código que funcionaba. Por eso aquí no se ajustan los espacios internos, ni se reordena, ni se reajusta el ancho, ni se borran líneas. ⚠️ El cuerpo de un heredoc y las directivas POD se dejan enteros. Las dos cosas son propias de Perl: el cuerpo de un heredoc es contenido de cadena, así que sangrarlo inserta espacios en tus datos (peor aún con `<<~`, donde el sangrado relativo de las líneas del cuerpo *es* el significado); y las directivas POD deben empezar en la columna 0 — sangra una y Perl deja de tratarla como POD, la analiza como código y da error de sintaxis. Ningún otro lenguaje aquí necesita esto, por eso Perl lo trata aparte. El código incompleto también produce salida, sin error: así funciona formatear mientras escribes.
Funciones
- Un análisis real con tree-sitter: el sangrado sigue la gramática, no el conteo de llaves
- Los paréntesis dentro de cadenas, comentarios y `q{}` no afectan a la estructura
- El cuerpo de un heredoc y las directivas POD no se tocan nunca — una protección propia de Perl
- Solo cambia el espacio inicial; ni un carácter del interior de la línea
- Sangrado con 2 espacios, 4 espacios o tabulador
- El código incompleto produce salida igualmente, sin error
- Salida con resaltado de sintaxis
- Se ejecuta entero en tu dispositivo: el código no se sube nunca
Cómo se usa
- Pega el código en el panel izquierdo
- Elige el ancho del sangrado
- Pulsa Ctrl/⌘ + Enter o haz clic en «Ejecutar»
- Copia el resultado
Preguntas frecuentes
- ¿En qué se diferencia de otros formateadores en línea?
- La mayoría hace un sangrado a nivel de texto: recorre carácter a carácter, sangra al ver `{` y desangra al ver `}`. No pueden distinguir si una llave está en el código o dentro de una cadena. Aquí se usa un analizador real: el código se convierte primero en un árbol de sintaxis y la profundidad de cada línea la decide la estructura gramatical a la que pertenece. El precio es un archivo de gramática de Perl más el motor del analizador (unos 4,4 MB en total), que solo se descarga al abrir la página de esta herramienta. A cambio obtienes una detección de estructura que no adivina.
- ¿Se modifican los heredoc y las directivas POD?
- No, y aquí hay un cuidado propio de Perl. El cuerpo de un heredoc y las directivas POD (como `=head1`) no se tocan en absoluto: el cuerpo de un heredoc es contenido de cadena, así que sangrarlo mete espacios en tus datos; y las directivas POD deben empezar en la columna 0, de modo que al sangrar una Perl deja de considerarla POD, la analiza como código y falla con un error de sintaxis. Esto incluye los heredoc `<<~`, en los que Perl quita el espacio inicial común: el sangrado relativo de las líneas del cuerpo es el significado, así que mover una sola línea cambia el resultado.
- ¿Por qué mi código salió igual que entró?
- Normalmente significa que ya estaba bien, que es el mejor resultado posible. El peor fallo de un formateador no es una salida fea, sino alterar código correcto: ese cambio acaba en un diff y en una revisión, y es difícil decir quién lo hizo. Por eso la estrategia aquí es actuar solo cuando hay algo que arreglar. Cuando el código está de verdad mal sangrado, la salida cambia.
- ¿Va a cambiar lo que hace mi código?
- No. Solo se toca el espacio en blanco al principio de cada línea: ni un carácter del interior, ni reordenación, ni reajuste de ancho, ni borrado de líneas, nada dentro de cadenas ni comentarios, y el cuerpo de los heredoc y el POD se conservan enteros. Así que incluso con un formato muy raro, lo peor es un sangrado que no te guste, mientras el código sigue corriendo. Por lo mismo, no puede añadir sintaxis que falte (una llave perdida, un punto y coma olvidado). Es una herramienta de sangrado, no de reparación.
Herramientas relacionadas
JS: minificar y embellecer
FormatoMinifica JavaScript (quita comentarios y espacios, conserva las licencias /*!) o lo embellece reindentando por llaves y puntos y coma. Nada se sube.
Ofuscador JS
FormatoQuita comentarios y espacios, escapa cadenas y números y renombra variables locales: más pequeño y más difícil de hojear. Todo en local.
Resaltado de código
WebColorea código con sintaxis y cópialo con el color intacto a PowerPoint, Word o correo; o exporta HTML con estilos en línea para tu blog. 26 lenguajes.
Formateador Shell
FormatoIndenta un script de shell por su estructura: if/fi, for/done, case/esac y funciones se alinean. Solo cambia el espacio inicial; el heredoc queda intacto.
Formateador JSON
FormatoFormatea, valida y repara JSON en línea: árbol plegable, búsqueda de claves y valores, edición nodo a nodo y errores con línea y columna.
JSON a código
FormatoConvierte una muestra JSON en interfaces de TypeScript, structs de Go, clases de Java o structs de Rust; las claves que faltan salen opcionales.