piapia123
es

Formateador de código C

Formato

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

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

  1. Pega el código en el panel izquierdo
  2. Elige el ancho del sangrado
  3. Pulsa Ctrl/⌘ + Enter o haz clic en «Ejecutar»
  4. 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