IntelliJ'de dosya kaydetmede gofmt'yi çalıştırın


Yanıtlar:


136

Tabi ki yapabilirsin.

  1. File Watchers eklentisini yükleyin
  2. "Tercihler-> Araçlar-> Dosya İzleyiciler" i açın ve yeni bir izleyici ekleyin
  3. set File Type: Go, Program: bir abosolute yolunu gofmt, Arguments:-w $FilePath$
  4. Tıklayın OK

görüntü açıklamasını buraya girin


4
Bu her zaman depomdaki her dosyayı yeniden biçimlendirir, hatta Godeps / *. Ben de yolumu kodladım. $ FilePath $ 'ı her seferinde depodaki her dosyayı özyinelemeli olarak biçimlendirmeden kullanmanın bir yolu var mı? Görünüşe göre FilePath benim için domino etkisine sahip.
jayunit100

1
@ jayunit100 Kapsam parametresini yapılandırabilirsiniz 1. yerel bir kapsam ekleyin 2. onu adlandırın ve Modeli şu şekilde ayarlayın : dosya [$ proj]: * / &&! dosya [$ proj]: Godeps // *! anlık görüntü
yee

1
Bu, dosyalarımı düzenlememe izin vermiyor. Biraz daha kodlamak için yeni bir satır eklemeye çalıştığımda program beni önceki satıra geri getiriyor ve yeni satırımı siliyor. bunu nasıl durdururum? not: phpstorm kullanma
bia.migueis

6
boşver, anladım. "anında dosya senkronizasyonu", herhangi bir değişiklik yaptığınız anda fmt'nin çalışmasını sağlar. sadece unselect ve sadece tasarruf dosyada çalışacak (veya pencere odaklamayın)
bia.migueis

1
Dikkat edin, bu cevap şu anda biraz güncel değil: File Watchers eklentisinin artık çok fazla iş yapmanıza gerek kalmadan ekleyebileceğiniz önceden oluşturulmuş bir "go fmt" izleyicisi var.
Aaron Shaver

61

Gogland EAP 16 , On Save eylemlerini kullanımdan kaldırmış ve bunları File Watchers eklentisiyle değiştirmiştir .

Daha önce Kaydetme İşlemlerini yapılandırdıysanız, IDE sizden eklentiyi yüklemenizi ve her şeyi otomatik olarak yapılandırmanızı isteyecektir. Sıfırdan kendiniz kurmak istiyorsanız, File Watchers eklentisine sahip olup olmadığınızı kontrol edin ve yüklemeyin.

Gofmt'yi etkinleştirin:

  1. Adresine gidin Settings | Tools | File Watchers.
  2. Click +düğmesine basıp go fmt.
  3. Varsayılan değerler iyidir.
  4. Gelişmiş Seçenekler'de şunları seçin:
    • İzleyiciyi tetiklemek için düzenlenen dosyaları otomatik kaydedin
    • İzleyiciyi harici değişikliklerde tetikleyin
  5. Tamam'ı tıklayın!

Yapılandırma

Aynısını goimportsve için yapabilirsiniz gometalinter.


8
Aslında go fmt yerine yalnızca goimport'ları ayarlamak daha iyidir, çünkü goimports belgelerinde belirtildiği gibi fmt de gerçekleştirir: "Goimports, içe aktarmaları düzeltmenin yanı sıra kodunuzu gofmt ile aynı stilde biçimlendirir, böylece bir yedek olarak kullanılabilir editörünüzün gofmt-on-save kancası için "
dux2

2
Bu Goland için Ekim 2018 itibarıyla doğru cevap
George Aristy

54

Gogland kullanıyorsanız, Tercihler altında Kaydetme seçeneğiniz vardır.

görüntü açıklamasını buraya girin


1
gogland, go eklentisi ile aynı değildir.
gözcü

Python eklentisi ve pycharm gibi neredeyse aynı. Tek olası fark, güncellemelerde gecikmedir. Aksi takdirde bu - size tam olarak aynı özellik setini sağlar.
Alex Pavlenko

25
Kaydedildiğinde mekanizması kullanımdan kaldırılmıştır ve gelecekte kaldırılacaktır. Bunun yerine File Watchers eklentisini kullanın
Zangetsu

3
Ancak en son GoLand'de bile bu seçeneği görmüyorum. "Git" altında dosya adına sağ tıkladığımda dosya fmt yapabilirim. ancak otomatik kaydetme sırasında etkinleştirme seçeneğini görmüyorum.
wonderengineer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.