Formatador TOML

Cole TOML e o espaçamento é normalizado — chaves, strings e valores permanecem intactos.

Como usar

  1. Cole seu TOML na caixa — ele é formatado enquanto você digita, sem botão para clicar.
  2. Escolha 2 ou 4 espaços para arrays de várias linhas e ative Alinhar = se quiser os sinais de igual alinhados; o resultado é atualizado imediatamente.
  3. Se algo estiver errado, a mensagem indica a linha, a coluna e o motivo. Copie o resultado ou baixe-o como arquivo .toml.

Exemplo

Entrada

[package]
name="ykit"
version = "0.1.0"
edition="2021"
authors = ["Ana Clara <ana@exemplo.com.br>",  "Grace Hopper <grace@example.com>"]
keywords=["ferramentas",   "toml"]

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

Formatado

[package]
name = "ykit"
version = "0.1.0"
edition = "2021"
authors = ["Ana Clara <ana@exemplo.com.br>", "Grace Hopper <grace@example.com>"]
keywords = ["ferramentas", "toml"]

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

Apenas as regras padrão: dois espaços e sem alinhamento. Ordem de chaves, conteúdo das strings e ordem dos arrays ficam intactos; a tabela inline só tem o espaçamento normalizado e nunca uma vírgula final.

Regras, limites e problemas conhecidos

  • Apenas sintaxe e conflitos de chave/tabela: chaves repetidas, tabelas definidas duas vezes, choques entre chave e tabela, strings e escapes, números, datas, arrays e tabelas inline. Sem schema, sem semântica de negócio, sem correções automáticas.
  • Apenas espaços fora de strings e comentários são reescritos. Ordem de chaves, ordem de tabelas, chaves simples versus entre aspas, delimitadores e escapes de string, grafia de números/datas/booleanos e texto de comentários são copiados caractere por caractere.
  • Arrays de uma linha ficam em uma linha; arrays de várias linhas mantêm um item por linha, com seus comentários e vírgula final. Tabelas inline são impressas em uma linha, então arrays dentro delas são dobrados em uma linha; quebras de linha dentro de uma string multilinha são conteúdo e ficam como digitadas, o que pode fazer uma tabela inline ocupar várias linhas.
  • Uma quebra de linha ou um comentário dentro de uma tabela inline é erro de sintaxe (o próprio TOML proíbe os dois). Um comentário final fica um espaço após o código, e espaços no fim de um comentário são removidos.
  • Sequências de linhas vazias são reduzidas a uma, linhas vazias no início e no fim são descartadas, e nenhuma linha vazia é acrescentada entre tabelas.
  • Um array, tabela inline ou string multilinha não fechado bem no fim, um cabeçalho de tabela truncado, um `key =` sem valor ou um caminho de chave cortado logo após um ponto é aviso, não erro: você ainda recebe um resultado. Erros reais (vírgula faltando, valor sem aspas, data inválida) são erros com linha e coluna. Apenas o primeiro erro é reportado.
  • Números de linha e coluna contam pontos de código Unicode, então um emoji é uma coluna; CRLF conta como uma quebra. Apenas espaço e tabulação são espaços TOML: U+3000 e U+00A0 fora de uma string são erros, enquanto dentro de uma string são conteúdo.
  • Chaves simples são apenas ASCII — chaves em chinês ou árabe precisam de aspas, o que é do próprio TOML, não uma preferência desta ferramenta. Números e datas nunca são reescritos nem convertidos para outro sistema de dígitos.
  • Sem minificação, sem ordenação de chaves, sem normalização de valores, sem upload de arquivo, sem parâmetros de URL, sem histórico. Tudo roda no seu navegador: nada é enviado ou armazenado.
  • Acima de 200.000 caracteres o resultado é atualizado cerca de 0,6 s depois de você parar de digitar; o texto nunca é truncado. A saída usa LF sem quebra de linha final, e a formatação é idempotente com os mesmos ajustes de alinhamento e indentação.

O que as pessoas costumam precisar depois que a configuração está legível.