O que é esta ferramenta?
Um verificador de colchetes varre o texto caractere por caractere, rastreando cada colchete de abertura ( [ { em uma pilha e comparando-o com o próximo colchete de fechamento ) ] } encontrado. Se um colchete de fechamento não corresponder ao colchete de abertura não fechado mais recente, ou um colchete de abertura nunca for fechado, ou um colchete de fechamento aparecer sem nada para fechar, isso é sinalizado como um problema com sua posição exata.
Isso é uma verificação simples por varredura, não um parser de linguagem completo — funciona da mesma forma independentemente de o conteúdo colado ser JavaScript, Python, JSON, ou apenas texto corrido, o que a torna útil em qualquer linguagem ou formato que use colchetes.
Por que usar?
- Rodou um script Python de 500 linhas e só recebeu "SyntaxError: unexpected EOF while parsing", sem pista de onde está o problema — colar o código aqui aponta exatamente a linha e a coluna do colchete não fechado.
- Copiou e colou um arquivo de configuração JSON escrito à mão antes do deploy e está com aquela sensação de que o número de chaves não bate — rodar a verificação uma vez resolve a dúvida antes de publicar.
- Está numa fórmula matemática longa ou num código de modelo estatístico onde o editor avisa que falta um parêntese em algum lugar da estrutura aninhada, mas você não consegue achar o ponto exato.
- Está revisando um trecho de código compartilhado por um colega e quer confirmar se sobrou uma chave de fechamento duplicada de um copia e cola mal feito.
- Precisa checar rapidamente se os parênteses ou colchetes estão equilibrados dentro de uma expressão regular ou arquivo de configuração — algo que o parser de uma linguagem de programação normal não detectaria direito.
- Está lidando com código sensível de um sistema interno da empresa — como tudo roda no navegador, não precisa mandar esse código para nenhum serviço externo de lint.
Como usar
- Cole seu código ou texto na caixa de entrada.
- Clique em Verificar colchetes.
- Revise a lista de problemas, cada um com sua linha e coluna, ou veja a confirmação de que tudo corresponde.
Exemplo
Entrada
function foo() {
return [1, 2, (3];
}Resultado
Tipo de colchete incompatível: ] na linha 2, coluna 18; Tipo de colchete incompatível: } na linha 3, coluna 1; Colchete de abertura não fechado: { na linha 1, coluna 17O ] na linha 2 deveria fechar o ( aberto na coluna 15, não o [ anterior — este é exatamente o tipo de bug (um colchete de fechamento do tipo errado) fácil de passar despercebido a olho nu em um arquivo longo.
Usos comuns
- Depurar um erro "Unexpected token" ou "Unexpected end of input" em JavaScript, JSON ou Python sem reler cuidadosamente o arquivo inteiro.
- Verificar um trecho de JSON escrito à mão em busca de uma chave sobrando ou faltando antes de colá-lo em um arquivo de configuração.
- Verificar parênteses aninhados em uma expressão matemática ou fórmula longa.
- Identificar um colchete acidental deixado por uma edição de copiar e colar em uma revisão de código.
Como diferenciar os três tipos de erro
As mensagens de erro exibidas no resultado se dividem em três padrões. Como cada um tem uma causa diferente, a tabela abaixo ajuda a localizar o problema mais rápido.
| Tipo de erro | O que significa | Causa comum |
|---|---|---|
| Colchete de abertura não fechado | Um colchete de abertura nunca foi fechado até o fim do texto | Esqueceu de fechar uma função ou objeto no final |
| Colchete de fechamento não correspondido | Um colchete de fechamento apareceu sem um de abertura correspondente | Apagou só o colchete de abertura ao copiar e colar |
| Tipo de colchete incompatível | Há um colchete de fechamento, mas de tipo diferente do último aberto | Abriu com [ e fechou sem querer com ) ou } |
Perguntas frequentes
Isso verifica aspas ou tags também, ou só colchetes?
Apenas os três pares de colchetes: parênteses ( ), colchetes [ ], e chaves { }. Aspas e tags HTML/XML não são rastreadas.
Qual é a diferença entre os três tipos de problema?
"Colchete de abertura não fechado" significa que um colchete de abertura nunca foi fechado até o fim do texto. "Colchete de fechamento não correspondido" significa que um colchete de fechamento apareceu sem um colchete de abertura correspondente antes. "Tipo de colchete incompatível" significa que um colchete de fechamento apareceu, mas é do tipo errado para o colchete aberto mais recentemente — por exemplo, fechar um [ com um ).
A ferramenta entende que colchetes dentro de uma string ou comentário não deveriam contar?
Não — isso é uma varredura simples de caracteres, não um parser consciente da linguagem, então ela não sabe nada sobre literais de string ou comentários. Um caractere de colchete dentro de uma string entre aspas ou um comentário ainda é contado. Para resultados totalmente precisos em arquivos-fonte reais, remova strings/comentários antes ou use o casamento de colchetes ciente da sintaxe embutido no seu editor.
Meu código é enviado para algum lugar?
Não. A verificação roda como JavaScript local no seu navegador; nada é enviado a um servidor.
Ele também verifica aspas curvas ou tags HTML?
Não. A ferramenta trabalha só com os três pares de colchetes padrão: ( ), [ ] e { }. Aspas curvas, aspas retas, tags HTML/XML e qualquer outro delimitador não entram na verificação — só os colchetes literais.
Se aparecerem vários erros na lista, qual devo corrigir primeiro?
Em geral, vale corrigir de cima para baixo, começando pelo erro mais próximo do início do texto. Corrigir a primeira incompatibilidade costuma resolver, em cadeia, vários erros de "tipo de colchete incompatível" que apareceram depois dela.
Funciona corretamente com a sintaxe de link do Markdown, tipo [texto](url)?
Sim. A combinação de colchetes e parênteses usada em links do Markdown é interpretada como um aninhamento normal. Mas, assim como não reconhece strings ou comentários, a ferramenta não entende a sintaxe específica do Markdown — ela só olha para os caracteres de colchete em si.
Ele detecta outros problemas além de colchetes desbalanceados?
Não, a ferramenta verifica apenas a correspondência de colchetes. Erros de digitação em nomes de variáveis, problemas de tipo ou falhas de lógica que não envolvam colchetes ficam fora do escopo. Para esse tipo de checagem, use um linter ou compilador específico da linguagem em questão.