Formatador de TOML
Formate e valide TOML (Tom's Obvious, Minimal Language). Alinha claramente pares key = value, tabelas e arrays, e mostra erros de sintaxe com o número da linha.
Principais tipos de dados do TOML
| Tipo | Exemplo | Descrição |
|---|---|---|
| String (básica) | "hello" | Escrita entre aspas duplas. Suporta sequências de escape como \n e \t. |
| String (literal) | 'C:\path' | Escrita entre aspas simples. Nenhum escape é aplicado, o que é útil para caminhos com barras invertidas. |
| Inteiro | 42 | Decimal por padrão; também suporta 0x (hex), 0o (octal), 0b (binário) e separadores com underline como 1_000. |
| Ponto flutuante | 3.14 | Notação exponencial (1e10) e os valores especiais inf/nan também são válidos. |
| Booleano | true | Apenas true ou false. Formas com maiúscula inicial (True) são inválidas. |
| Array | [1, 2, 3] | Valores separados por vírgula dentro de colchetes. Uma vírgula final é permitida. |
| Tabela | [server] | Todo par key = value que segue um cabeçalho de seção passa a pertencer àquela tabela. |
| Array de tabelas | [[fruits-basket]] | Repetir o mesmo nome de tabela expressa um array (por exemplo, várias definições de dependências). |
| Data/Hora | 1979-05-27T07:32:00Z | Formato RFC 3339 — o único valor composto que pode ser escrito sem aspas. |
Formatar TOML e verificar sua sintaxe
TOML é um formato pensado para arquivos de configuração, e seu atrativo está na simplicidade de apenas enumerar pares `key = value`. Esta ferramenta arruma o TOML que você cola e, ao mesmo tempo, julga se a sintaxe se sustenta; quando algo está quebrado, aponta a linha culpada.
**A primeira coisa em que se tropeça no TOML é que a estrutura vem de linhas de cabeçalho escritas `[tabela]` e não da indentação.** Quem vem do YAML tende a recorrer ao recuo para exprimir a hierarquia, mas no TOML o recuo não significa absolutamente nada: **as chaves escritas entre um cabeçalho de tabela e o seguinte pertencem àquela tabela.** É, portanto, a posição da linha que determina a estrutura. O outro traço distintivo é que datas e horas são tipos de primeira classe, de modo que um valor como `2026-09-20T10:00:00Z` pode ser escrito sem aspas, tal como está.
Como se usa
- Cole o TOML O conteúdo de um `Cargo.toml` ou de um `pyproject.toml` entra como está.
- Confira o veredicto **Uma entrada sã é marcada como TOML válido; quando a sintaxe falha, a linha em questão é indicada.**
- Leia o resultado formatado Chaves e valores ficam alinhados e as fronteiras entre tabelas tornam-se fáceis de ver.
- Copie de volta O conteúdo arrumado pode ser devolvido ao arquivo sem mais mudanças.
Dicas para aproveitar melhor
- Apenas arrays e tabelas em linha escritos em uma única linha são suportados. Se seu array ocupar várias linhas, junte-o em uma só antes de colar.
- O formatador sempre normaliza exatamente um espaço em cada lado de "=" e padroniza os separadores de arrays/tabelas em linha para ", ", eliminando inconsistências entre diferentes autores.
- Comentários (tudo após #) são preservados; a única alteração aplicada é inserir um espaço logo após "#" quando estiver faltando, mantendo a edição mínima.
- Linhas em branco consecutivas são reduzidas a uma única linha, facilitando a visualização dos limites entre tabelas.
- Todo o processamento acontece inteiramente no seu navegador — nada do que você cola aqui é enviado a um servidor.
Quando é útil
Ao procurar um erro num arquivo de configuração
**Colocar mal um cabeçalho de tabela muda em silêncio a qual tabela uma chave pertence, e essa é uma classe de erro que a vista raramente apanha.**
Ao ler a configuração de um projeto em Rust ou Python
Formatar um `Cargo.toml` ou um `pyproject.toml` deixa bem mais fácil seguir as divisões entre dependências.
Ao revisar algo convertido de outro formato
Ajustes reescritos a partir de JSON ou YAML podem ser testados na hora para ver se a sintaxe se sustenta.
Ao uniformizar o estilo de uma equipe
Formatar antes de confirmar as mudanças mantém os espaços soltos fora do diff e deixa só o que importa.
Termos de TOML
- Tabela
- Um cabeçalho escrito entre colchetes, como `[package]`, que **reúne em um grupo as chaves que vão dali até o próximo cabeçalho.**
- Arranjo de tabelas
- A notação escrita com colchetes duplos, `[[dependencies]]`. Repetir o mesmo cabeçalho acrescenta outro elemento ao arranjo.
- Tabela em linha
- Uma tabela escrita em uma só linha como `{ a = 1, b = 2 }`. **Serve para ajustes breves, mas não pode ser partida entre várias linhas.**
- Cadeia básica
- Uma cadeia entre aspas duplas, dentro da qual escapes como `\n` surtem efeito.
- Cadeia literal
- Uma cadeia entre aspas simples. **Nenhum escape tem efeito dentro dela, o que a torna a escolha certa para caminhos do Windows e expressões regulares.**
- Data e hora
- Um tipo que o TOML oferece de forma nativa. Uma data ou hora como `1979-05-27T07:32:00Z` pode ser escrita sem aspas.
Perguntas frequentes
[[section]], mas não combina seções repetidas com o mesmo nome em um único objeto do tipo array (como faria um conversor completo de TOML para JSON). Para estruturas complexas de array de tabelas, revise visualmente o resultado formatado linha por linha."""...""" e '''...''' não são suportadas, e essa linha será reportada como erro. Converta textos longos em uma string de uma única linha com escapes antes de formatar.
Curiosidade — Por que o TOML se tornou a língua comum dos arquivos de configuração
O TOML foi criado em 2013 por Tom Preston-Werner, cofundador do GitHub, e seu nome completo, "Tom's Obvious, Minimal Language", reflete diretamente o objetivo do design: um formato tão fácil de analisar para máquinas quanto o JSON, mas que se lê e se escreve naturalmente para humanos, sem ambiguidades.
O momento decisivo veio quando o Cargo, gerenciador de pacotes do Rust, adotou o Cargo.toml como formato de manifesto. Depois, a PEP 518 introduziu o pyproject.toml como padrão de empacotamento do Python, unificando o que antes era uma mistura de setup.py, setup.cfg e requirements.txt.
A maior diferença em relação ao YAML é que o TOML não atribui nenhum significado à indentação. No YAML, um pequeno erro de indentação pode alterar silenciosamente a estrutura dos dados ou causar um erro de sintaxe; o TOML, por outro lado, expressa a hierarquia apenas por meio de cabeçalhos [section] e pares key = value, tornando os erros de copiar e colar muito menos prováveis.
Em contrapartida, o TOML abre mão de parte da expressividade do YAML: não possui âncoras/aliases para reutilizar valores e é mais verboso para estruturas profundamente aninhadas, por isso muitas equipes escolhem entre TOML, YAML e JSON conforme o formato dos dados.