Wykonaj gofmt przy zapisywaniu pliku w IntelliJ


Odpowiedzi:


133

Oczywiście, że możesz.

  1. zainstaluj wtyczkę File Watchers
  2. otwórz „Preferencje-> Narzędzia-> Obserwatory plików” i dodaj nowy obserwator
  3. zestaw File Type: Go, Program: ścieżkę abosolute o gofmt, Arguments:-w $FilePath$
  4. Kliknij OK

wprowadź opis obrazu tutaj


4
To zawsze ponownie formatuje każdy plik w moim repozytorium, nawet Godeps / *. Więc zamiast tego zakodowałem na stałe moją ścieżkę. Jakikolwiek sposób na użycie $ FilePath $ bez rekurencyjnego formatowania każdego pliku w repozytorium za każdym razem? Wygląda na to, że FilePath daje mi efekt domina.
— jayunit100

1
@ jayunit100 Możesz skonfigurować parametr zakresu 1. dodać zakres lokalny 2. nazwać go i ustawić wzorzec na: plik [$ proj]: * / &&! plik [$ proj]: Godeps // *! snapshot
— Yee

1
To nie pozwala mi na edycję moich plików. Kiedy próbuję dodać nowy wiersz do kodowania, program przenosi mnie z powrotem do poprzedniego wiersza i usuwa nowy wiersz. jak to zatrzymać? uwaga: używając phpstorm
— bia.migueis

6
nieważne, rozgryzłem to. „Natychmiastowa synchronizacja plików” sprawi, że fmt będzie działał zaraz po wprowadzeniu jakichkolwiek zmian. po prostu odznacz to i będzie działać tylko po zapisaniu pliku (lub
— rozogniskowaniu

1
Uwaga, ta odpowiedź jest teraz nieco nieaktualna: wtyczka File Watchers ma teraz wstępnie wbudowany obserwator „go fmt”, który można dodać bez konieczności wykonywania dużej ilości pracy.
— Aaron Shaver

61

Gogland EAP 16 wycofał akcje przy zapisywaniu i zastąpił je wtyczką File Watchers .

Jeśli wcześniej skonfigurowałeś akcje przy zapisywaniu, IDE wyświetli monit o zainstalowanie wtyczki i skonfigurowanie wszystkiego automatycznie. Jeśli chcesz samodzielnie skonfigurować ją od podstaw, sprawdź, czy masz wtyczkę File Watchers, a jeśli nie, zainstaluj ją.

Włącz gofmt:

  1. Iść do Settings | Tools | File Watchers .
  2. Kliknij +przycisk i wybierzgo fmt .
  3. Domyślne wartości są dobre.
  4. W opcji Advance wybierz:
    • Automatycznie zapisuj edytowane pliki, aby uruchomić obserwatora
    • Uruchamiaj obserwatora zmian zewnętrznych
  5. Kliknij OK!

Config

Możesz zrobić to samo dla goimportsi gometalinter.


8
Właściwie lepiej jest skonfigurować tylko goimports zamiast go fmt, ponieważ wykonuje również fmt, jak określono w dokumentach goimports: „oprócz naprawiania importu, goimports formatuje również kod w tym samym stylu co gofmt, aby można go było użyć jako zamiennika dla haka gofmt-on-save twojego redaktora ”
— dux2

2
To jest poprawna odpowiedź dla Goland na październik 2018
— George Aristy

54

Jeśli korzystasz z Goglanda, masz w Preferencjach opcję Włącz zapisywanie

wprowadź opis obrazu tutaj


1
gogland to nie to samo, co wtyczka go.
— spotter

To prawie to samo, co wtyczka Pythona vs Pycharm. Jedyną możliwą różnicą jest opóźnienie w aktualizacjach. Poza tym to - zapewnia dokładnie ten sam zestaw funkcji.
— Alex Pavlenko

24
Mechanizm przy zapisywaniu jest przestarzały i zostanie usunięty w przyszłości. Zamiast tego użyj wtyczki File Watchers
— Zangetsu

3
Ale nawet w najnowszym GoLandzie nie widzę tej opcji. Myślę, że po kliknięciu prawym przyciskiem myszy na nazwie pliku pod „Go” mogę umieścić plik. ale nie widzę opcji włączenia go podczas automatycznego zapisywania.
— curiousengineer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.