Execute gofmt no arquivo salvo no IntelliJ


Respostas:


136

Claro que você pode.

  1. instalar o plugin File Watchers
  2. abra "Preferências-> Ferramentas-> Observadores de Arquivos" e adicione um novo observador
  3. definir File Type: Go, Program: o caminho abosolute de gofmt, Arguments:-w $FilePath$
  4. clique OK

insira a descrição da imagem aqui


4
Isso sempre reformata todos os arquivos em meu repo, até mesmo Godeps / *. Então, em vez disso, codifiquei meu caminho. Existe alguma maneira de usar $ FilePath $ sem formatar recursivamente todos os arquivos no repo todas as vezes? Parece que o FilePath está tendo um efeito dominó para mim.
jayunit100

1
@ jayunit100 Você pode configurar o parâmetro de escopo 1. adicionar um escopo local 2. nomeá-lo e definir o padrão para: arquivo [$ proj]: * / &&! arquivo [$ proj]: Godeps // *! instantâneo
yee

1
Isso não me permite editar meus arquivos. Quando tento adicionar uma nova linha para codificar um pouco mais, o programa me traz de volta à linha anterior e exclui minha nova linha. como faço para parar isso? observação: usando phpstorm
bia.migueis

6
deixa pra lá, eu descobri. "sincronização imediata de arquivos" fará com que fmt seja executado assim que você fizer qualquer alteração. apenas desmarque-o e ele só será executado ao salvar o arquivo (ou a janela
desfocar

1
Atenção, esta resposta está um tanto desatualizada agora: o plug-in File Watchers agora tem um watcher "go fmt" pré-construído que você pode adicionar sem precisar fazer muito trabalho.
Aaron Shaver

61

Gogland EAP 16 descontinuou as ações On Save e as substituiu pelo plugin File Watchers .

Se você configurou anteriormente as ações On Save, o IDE solicitará que você instale o plugin e configure tudo automaticamente. Se você mesmo deseja configurá-lo do zero, verifique se possui o plugin File Watchers e se não o instala.

Habilitar gofmt:

  1. Vá para Settings | Tools | File Watchers.
  2. Clique no +botão e selecione go fmt.
  3. Os valores padrão são bons.
  4. Em Opções Avançadas, selecione:
    • Salve arquivos editados automaticamente para acionar o observador
    • Acione o observador em mudanças externas
  5. Clique OK!

Config

Você pode fazer o mesmo por goimportse gometalinter.


8
Na verdade, é melhor configurar apenas goimports em vez de go fmt porque também executa fmt, conforme especificado nos documentos goimports: "além de corrigir as importações, goimports também formata seu código no mesmo estilo do gofmt para que possa ser usado como um substituto para o gancho gofmt-on-save do seu editor "
dux2

2
Esta é a resposta correta para Goland em outubro de 2018
George Aristy

54

Se você estiver usando o Gogland, terá uma opção ao salvar em Preferências

insira a descrição da imagem aqui


1
gogland não é o mesmo que o plugin go.
observador de

É quase igual ao plugin python vs pycharm. A única diferença possível é o atraso nas atualizações. Fora isso - fornece exatamente o mesmo conjunto de recursos.
Alex Pavlenko

25
O mecanismo ao salvar está obsoleto e será removido no futuro. Em vez disso, use o plug-in File Watchers
Zangetsu

3
Mas mesmo no último GoLand, não vejo essa opção. Achei que, ao clicar com o botão direito no nome do arquivo, em "Ir", posso fmt o arquivo. mas não vejo a opção de habilitá-lo durante o salvamento automático.
Curioso
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.