Esegui gofmt sul salvataggio del file in IntelliJ


Risposte:


136

Certo che puoi.

  1. installa il plugin File Watchers
  2. apri "Preferenze-> Strumenti-> File Watcher" e aggiungi un nuovo watcher
  3. set File Type: Go, Program: il percorso di abosolute gofmt, Arguments:-w $FilePath$
  4. clic OK

inserisci qui la descrizione dell'immagine


4
Questo riformatta sempre ogni file nel mio repository, anche Godeps / *. Così ho invece codificato il mio percorso. Un modo per utilizzare $ FilePath $ senza formattare in modo ricorsivo ogni file nel repository ogni volta? Sembra che FilePath stia avendo un effetto domino per me.
jayunit100

1
@ jayunit100 È possibile configurare il parametro Scope 1. aggiungere uno scope locale 2. nominarlo e impostare Pattern su: file [$ proj]: * / &&! file [$ proj]: Godeps // *! snapshot
yee

1
Questo non mi permette di modificare i miei file. Quando provo ad aggiungere una nuova riga al codice, il programma mi riporta alla riga precedente e cancella la mia nuova riga. come faccio a fermarlo? nota: utilizzando phpstorm
bia.migueis

6
non importa, l'ho capito. "sincronizzazione immediata dei file" farà in modo che fmt venga eseguito non appena si apportano modifiche. deselezionalo e verrà eseguito solo su file save (o window unfocus)
bia.migueis

1
Attenzione, questa risposta è un po 'obsoleta ora: il plugin File Watchers ora ha un watcher "go fmt" predefinito che puoi aggiungere senza bisogno di fare molto lavoro.
Aaron Shaver

61

Gogland EAP 16 ha deprecato le azioni Al salvataggio e le ha sostituite con il plug-in File Watchers .

Se hai già configurato le azioni Al salvataggio, l'IDE ti chiederà di installare il plugin e configurare tutto automaticamente. Se vuoi configurarlo da zero, controlla se hai il plugin File Watchers e, in caso contrario, installalo.

Abilita gofmt:

  1. Vai a Settings | Tools | File Watchers.
  2. Fare clic sul +pulsante e selezionare go fmt.
  3. I valori predefiniti sono buoni.
  4. In Opzioni avanzate selezionare:
    • Salva automaticamente i file modificati per attivare il watcher
    • Attiva l'osservatore su modifiche esterne
  5. Fare clic su OK!

Config

Puoi fare lo stesso per goimportse gometalinter.


8
In realtà è meglio impostare solo goimports invece di go fmt perché esegue anche fmt, come specificato nei documenti di goimports: "oltre a correggere le importazioni, goimports formatta anche il codice nello stesso stile di gofmt in modo che possa essere utilizzato come sostituto per l'hook gofmt-on-save del tuo editor "
dux2

2
Questa è la risposta corretta per Goland a partire da ottobre 2018
George Aristy

54

Se stai usando Gogland, hai un'opzione On Save in Preferences

inserisci qui la descrizione dell'immagine


1
gogland non è la stessa cosa del plugin go.
spotter

È quasi lo stesso proprio come plugin python vs pycharm. L'unica differenza possibile è il ritardo sugli aggiornamenti. Oltre a questo, ti fornisce esattamente le stesse funzionalità impostate.
Alex Pavlenko

25
Il meccanismo di salvataggio è deprecato e verrà rimosso in futuro. Usa invece il plugin File Watchers
Zangetsu

3
Ma anche nell'ultimo GoLand, non vedo questa opzione. Tuttavia, quando si fa clic con il pulsante destro del mouse sul nome del file, sotto "Vai", posso eseguire il file fmt. ma non vedo l'opzione per abilitarlo durante il salvataggio automatico.
curioso ingegnere
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.