Formateador de código C#
FormatoTodo se ejecuta en tu navegador: no se sube nada
Reindenta el código C#. 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? El método de «contar llaves» no distingue si una `}` está en el código o dentro de una cadena o un comentario. 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, y eso es peor que no hacer nada. Tocar solo el inicio de línea hace imposible alcanzar el contenido de cadenas, comentarios y plantillas; por raro que sea el código, lo más que pasa es que el sangrado no te guste, pero el código sigue corriendo. Por eso aquí no se ajustan los espacios internos, ni se reordena, ni se reajusta el ancho, ni se borran líneas. 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 y palabras clave dentro de cadenas o comentarios no afectan a la estructura
- 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 por lenguaje (de unos cientos de KB a unos pocos MB), que solo se descarga al abrir la página de esa herramienta. A cambio obtienes una detección de estructura que no adivina.
- ¿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. 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.