Qué hace esta herramienta
El formateador de Go reescribe el código fuente Go en el único estilo canónico que usa toda la comunidad de Go. Pega un archivo o un fragmento y vuelve con la sangría, los espacios, la agrupación de imports y los campos de struct y comentarios alineados de gofmt.
Ejecuta el gofmt real de la toolchain de Go, compilado a WebAssembly. Nada es aproximado: lo que ves aquí es exactamente lo que escribiría go fmt, así que puedes hacer commit del código formateado sin provocar diferencias en CI.
Cómo se usa
- Pega código Go o abre un archivo
.go. - El código formateado aparece a la derecha mientras escribes.
- Mantén la sangría con Tabulador para el código del que vayas a hacer commit. Elige 2 espacios o 4 espacios cuando el código vaya a un documento, una diapositiva o un sitio que muestre los tabuladores demasiado anchos.
- Copia o descarga el resultado.
Si el código no se puede analizar, la herramienta muestra el primer error con su línea y columna, por ejemplo expected ')', found '{', y puedes saltar directamente a esa línea.
Ejemplo
El ejemplo es un programa corto apretado en el menor número de líneas posible: imports separados por punto y coma, un struct en dos líneas y funciones sin espacios alrededor de los operadores. Después de formatearlo:
- los imports pasan a ser un bloque entre paréntesis con un paquete por línea;
- los campos del struct se ponen cada uno en su línea y sus tipos se alinean en columna;
if u.Age<18{se convierte enif u.Age < 18 {con el cuerpo en su propia línea;- los literales compuestos reciben espacios después de las comas y los dos puntos.
Qué cambia gofmt y qué no
gofmt solo cambia la presentación. Nunca renombra identificadores, reordena declaraciones ni elimina imports sin usar; esas tareas corresponden a herramientas como goimports y go vet. También respeta tus saltos de línea donde tienen sentido, así que una lista de argumentos larga que hayas partido en varias líneas sigue partida.
Los comentarios se conservan y se vuelven a sangrar junto con el código que los rodea. Los comentarios al final de líneas consecutivas se alinean en columna, igual que los campos de un struct.
Consejos
- Formatear es una forma rápida de encontrar una llave que falta: la posición del error suele señalar la primera línea después del fallo.
- Ejecuta el formateador antes de compartir código en un issue o una revisión. Así los revisores pueden centrarse en lo que hace el código en lugar de en su aspecto.
- En tu editor, activa “format on save” con gopls para que tus archivos coincidan siempre con esta salida.
Preguntas frecuentes
› ¿Es el gofmt de verdad?
Sí. El formateador es el código de gofmt de la toolchain de Go compilado a WebAssembly, así que la salida es byte a byte lo que imprime `gofmt` o `go fmt` en tu máquina.
› ¿Necesito una cláusula package?
No. Lo ideal es un archivo completo, pero gofmt también acepta una lista de declaraciones o unas cuantas sentencias, lo que viene bien para fragmentos copiados de una entrada de blog o de un chat.
› ¿Por qué se usan tabuladores para la sangría?
gofmt siempre sangra con tabuladores y alinea con espacios. Es la convención de Go, y los editores muestran los tabuladores con el ancho que prefieras. Si necesitas espacios para un documento o una diapositiva, elige 2 o 4 espacios y solo se sustituyen los tabuladores iniciales.
› ¿Se sube mi código?
No. El módulo WebAssembly se descarga una vez y el formateo se hace en local en tu navegador.