Formateador TOML

Pega TOML y el espaciado se normaliza: las claves, las cadenas y los valores quedan intactos.

Cómo se usa

  1. Pega tu TOML en la caja: se formatea mientras escribes, sin ningún botón que pulsar.
  2. Elige 2 o 4 espacios para los arrays de varias líneas y activa «Alinear =» si quieres los signos igual alineados; el resultado se actualiza al instante.
  3. Si algo está mal, el mensaje indica la línea, la columna y el motivo. Copia el resultado o descárgalo como archivo .toml.

Ejemplo

Entrada

[package]
name="ykit"
version = "0.1.0"
edition="2021"
authors = ["Ada Lovelace <ada@example.com>",  "Grace Hopper <grace@example.com>"]
keywords=["tools",   "toml"]

[dependencies]
serde={version="1.0",features=["derive"]}

Formateado

[package]
name = "ykit"
version = "0.1.0"
edition = "2021"
authors = ["Ada Lovelace <ada@example.com>", "Grace Hopper <grace@example.com>"]
keywords = ["tools", "toml"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }

Solo con las reglas por defecto: dos espacios y sin alineación. El orden de las claves, el contenido de las cadenas y el orden de los arrays no se tocan; a la tabla en línea solo se le normaliza el espaciado y nunca se le añade coma final.

Reglas, límites y problemas conocidos

  • Solo sintaxis y conflictos de clave/tabla: claves repetidas, tablas definidas dos veces, choques entre clave y tabla, cadenas y escapes, números, fechas, arrays y tablas en línea. Sin esquema, sin semántica de negocio y sin correcciones automáticas.
  • Solo se reescribe el espacio en blanco fuera de cadenas y comentarios. El orden de las claves, el orden de las tablas, las claves sin comillas frente a las entrecomilladas, los delimitadores y escapes de cadena, la grafía de números, fechas y booleanos y el texto de los comentarios se copian carácter a carácter.
  • Los arrays de una línea permanecen en una línea; los de varias líneas conservan un elemento por línea con sus comentarios y su coma final. Las tablas en línea se imprimen en una línea, así que los arrays que contienen se pliegan; los saltos de línea dentro de una cadena multilínea son contenido y se mantienen como se escribieron, lo que puede hacer que una tabla en línea ocupe varias líneas.
  • Un salto de línea o un comentario dentro de una tabla en línea es un error de sintaxis (el propio TOML prohíbe ambos). Un comentario final queda un espacio después del código, y los espacios al final de un comentario se eliminan.
  • Las series de líneas vacías se reducen a una, las vacías iniciales y finales se eliminan y nunca se añade una línea vacía entre tablas.
  • Un array, una tabla en línea o una cadena multilínea sin cerrar al final, una cabecera de tabla truncada, un `clave =` suelto o una ruta de clave cortada justo después de un punto son un aviso, no un error: sigues obteniendo un resultado. Los errores reales (una coma que falta, un valor sin comillas, una fecha mal formada) son errores con línea y columna. Solo se notifica el primer error.
  • Los números de línea y columna cuentan puntos de código Unicode, así que un emoji ocupa una columna; CRLF cuenta como un salto de línea. Solo el espacio y el tabulador son espacio en blanco de TOML: U+3000 y U+00A0 fuera de una cadena son errores, mientras que dentro de una cadena son contenido.
  • Las claves sin comillas son solo ASCII: las claves en chino o árabe deben ir entre comillas, algo propio de TOML y no una preferencia de esta herramienta. Los números y las fechas nunca se reescriben ni se convierten a otro sistema de dígitos.
  • Sin minificar, sin ordenar claves, sin normalizar valores, sin subida de archivos, sin parámetros en la URL y sin historial. Todo funciona en tu navegador: no se sube ni se guarda nada.
  • Por encima de 200.000 caracteres el resultado se actualiza unos 0,6 s después de que dejes de escribir; el texto nunca se trunca. La salida usa LF sin salto final, y el formateo es idempotente con los mismos ajustes de alineación y sangría.

Lo que suele hacer falta después, una vez legible la configuración.