O que esta ferramenta faz
O formatador de Go reescreve código-fonte Go no único estilo canônico que toda a comunidade Go usa. Cole um arquivo ou um trecho e ele volta com a indentação, o espaçamento, o agrupamento de imports e o alinhamento de campos de struct e comentários do gofmt.
Ele roda o gofmt de verdade da toolchain do Go, compilado para WebAssembly. Nada é aproximado: o que você vê aqui é exatamente o que o go fmt escreveria, então o código formatado pode ser commitado sem gerar diff no CI.
Como usar
- Cole código Go ou abra um arquivo
.go. - O código formatado aparece à direita enquanto você digita.
- Mantenha a indentação Tab para código que você vai commitar. Escolha 2 espaços ou 4 espaços quando o código for para um documento, um slide ou um site que exibe tabs largos demais.
- Copie ou baixe o resultado.
Se o código não puder ser interpretado, a ferramenta mostra o primeiro erro com linha e coluna, por exemplo expected ')', found '{', e você pode pular direto para essa linha.
Exemplo
O exemplo é um programa curto espremido no menor número de linhas possível: imports separados por ponto e vírgula, uma struct em duas linhas e funções sem espaços em volta dos operadores. Depois de formatar:
- os imports viram um bloco entre parênteses com um pacote por linha;
- os campos da struct ficam cada um em sua linha, com os tipos alinhados em coluna;
if u.Age<18{viraif u.Age < 18 {, com o corpo em sua própria linha;- literais compostos ganham espaços depois de vírgulas e dois-pontos.
O que o gofmt muda e o que não muda
O gofmt só muda o layout. Ele nunca renomeia identificadores, reordena declarações ou remove imports não usados; essas tarefas são de ferramentas como goimports e go vet. Ele também mantém as suas quebras de linha onde elas têm significado, então uma lista longa de argumentos que você dividiu em várias linhas continua dividida.
Os comentários são mantidos e reindentados junto com o código ao redor. Comentários no fim de linhas consecutivas são alinhados em coluna, assim como os campos de struct.
Dicas
- Formatar é um jeito rápido de achar uma chave faltando: a posição do erro geralmente aponta para a primeira linha depois do engano.
- Rode o formatador antes de compartilhar código em uma issue ou revisão. Assim quem revisa pode se concentrar no que o código faz, e não na aparência dele.
- No seu editor, ative o “format on save” com o gopls para que os seus arquivos sempre batam com esta saída.
Perguntas frequentes
› Este é o gofmt de verdade?
Sim. O formatador é o código do gofmt da toolchain do Go compilado para WebAssembly, então a saída é, byte a byte, o que o `gofmt` ou o `go fmt` imprimem na sua máquina.
› Preciso de uma cláusula package?
Não. Um arquivo completo é o ideal, mas o gofmt também aceita uma lista de declarações ou algumas instruções, o que é prático para trechos copiados de um post de blog ou de um chat.
› Por que a indentação usa tabs?
O gofmt sempre indenta com tabs e alinha com espaços. Essa é a convenção do Go, e os editores exibem tabs com a largura que você preferir. Se você precisa de espaços para um documento ou slide, escolha 2 ou 4 espaços e apenas os tabs do início da linha são substituídos.
› Meu código é enviado para algum lugar?
Não. O módulo WebAssembly é baixado uma vez e a formatação roda localmente no seu navegador.