Ejecute gofmt en el archivo guardado en IntelliJ

Respuestas:

133

Por supuesto que puede.

  1. instalar el complemento File Watchers
  2. abra "Preferencias-> Herramientas-> Observadores de archivos" y agregue un nuevo observador
  3. set File Type: Go, Program: el camino de abosolute gofmt, Arguments:-w $FilePath$
  4. hacer clic OK

ingrese la descripción de la imagen aquí

yee
fuente
4
Esto siempre reformatea todos los archivos de mi repositorio, incluso Godeps / *. Así que codifiqué mi camino en su lugar. ¿Alguna forma de usar $ FilePath $ sin formatear recursivamente cada archivo en el repositorio cada vez? Parece que FilePath está teniendo un efecto dominó para mí.
jayunit100
1
@ jayunit100 Puede configurar el parámetro Scope 1. agregar un alcance local 2. asignarle un nombre y establecer el patrón en: file [$ proj]: * / &&! file [$ proj]: Godeps // *! instantánea
yee
1
Esto no me permite editar mis archivos. Cuando intento agregar una nueva línea para codificar un poco más, el programa me devuelve a la línea anterior y borra mi nueva línea. ¿Cómo detengo eso? nota: usando phpstorm
bia.migueis
6
no importa, lo descubrí. "Sincronización inmediata de archivos" hará que fmt se ejecute tan pronto como realice cualquier cambio. simplemente deseleccione y solo se ejecutará al guardar el archivo (o desenfocar la ventana)
bia.migueis
1
Atención, esta respuesta está algo desactualizada ahora: el complemento File Watchers ahora tiene un observador "go fmt" preconstruido que puede agregar sin necesidad de hacer mucho trabajo.
Aaron Shaver
61

Gogland EAP 16 desaprobó las acciones On Save y las reemplazó con el complemento File Watchers .

Si ha configurado previamente las acciones On Save, el IDE le pedirá que instale el complemento y configure todo automáticamente. Si desea configurarlo desde cero usted mismo, verifique si tiene el complemento File Watchers y, si no, instálelo.

Habilitar gofmt:

  1. Ir a Settings | Tools | File Watchers.
  2. Haga clic en el +botón y seleccione go fmt.
  3. Los valores predeterminados son buenos.
  4. En Opciones avanzadas, seleccione:
    • Guarde automáticamente los archivos editados para activar el observador
    • Activar al observador sobre cambios externos
  5. ¡Haga clic en Aceptar!

Config

Puedes hacer lo mismo para goimportsy gometalinter.

David Miguel
fuente
8
En realidad, es mejor configurar solo goimports en lugar de go fmt porque también realiza fmt, como se especifica en los documentos de goimports: "además de corregir las importaciones, goimports también formatea su código en el mismo estilo que gofmt para que pueda usarse como reemplazo para el gancho gofmt-on-save de su editor "
dux2
2
Esta es la respuesta correcta para Goland a partir de octubre de 2018
George Aristy
54

Si está utilizando Gogland, tiene una opción en Guardar en Preferencias

ingrese la descripción de la imagen aquí

Arun Gopalpuri
fuente
1
gogland no es lo mismo que el complemento go.
observador
Es casi lo mismo que el plugin de python vs pycharm. La única diferencia posible es el retraso en las actualizaciones. Aparte de esto, le proporciona exactamente el mismo conjunto de características.
Alex Pavlenko
24
El mecanismo On Save está obsoleto y se eliminará en el futuro. Use el complemento File Watchers en su lugar
Zangetsu
3
Pero incluso en la última versión de GoLand, no veo esta opción. Pensé que al hacer clic derecho en el nombre del archivo, en "Ir", puedo fmt file. pero no veo la opción para habilitarlo durante el guardado automático.
ingeniero curioso