IntelliJ में फ़ाइल सहेजें पर Gofmt निष्पादित करें


91

मैं गोलंग प्लगइन के साथ IntelliJ का उपयोग करता हूं। क्या फ़ाइल सहेजने पर गोफ़्ट निष्पादित करने के लिए आईडीई को कॉन्फ़िगर करना संभव है?


3
मैं मानक gofmt के बजाय godoc.org/golang.org/x/tools/cmd/goimports का उपयोग करने की सलाह दूंगा। गोइमपोर्ट न केवल गोफ़्ट चलाता है, बल्कि यह आपके आयात को भी ठीक करता है।
डेविड ब्रोफी

जवाबों:


136

निःसंदेह तुमसे हो सकता है।

  1. फ़ाइल वॉचर्स प्लगइन स्थापित करें
  2. "वरीयताएँ-> टूल-> फ़ाइल वॉचर्स" खोलें और एक नया वॉचर जोड़ें
  3. सेट File Type: Go, Program: के abosolute पथ gofmt, Arguments:-w $FilePath$
  4. क्लिक OK

यहाँ छवि विवरण दर्ज करें


4
यह हमेशा मेरे रेपो, यहाँ तक कि Godeps / * में हर फ़ाइल को सुधारता है। इसलिए मैंने इसके बजाय अपने रास्ते को हार्डकोड किया। हर बार रेपो में हर फ़ाइल को पुन: स्वरूपित किए बिना $ FilePath $ का उपयोग करने का कोई तरीका? FilePath की तरह लगता है मेरे लिए एक डोमिनोज़ प्रभाव है।
jayunit100

1
@ jayunit100 आप स्कोप परम को कॉन्फ़िगर कर सकते हैं। एक स्थानीय स्कोप जोड़ें । 2. इसका नाम और सेट करें पैटर्न : फाइल [$ proj]: * / &&! फ़ाइल [$ proj]: Godeps // *! स्नैपशॉट
यी

1
यह मुझे अपनी फ़ाइलों को संपादित करने की अनुमति नहीं देता है। जब मैं कुछ और कोड करने के लिए एक नई लाइन जोड़ने की कोशिश करता हूं तो प्रोग्राम मुझे पिछली लाइन में वापस लाता है और मेरी नई लाइन को हटा देता है। मैं उसे कैसे रोकूं? नोट: phpstorm
bia.migueis

6
कोई बात नहीं, मैंने इसका हल निकाल लिया। "तत्काल फ़ाइल सिंक" जैसे ही आप कोई भी बदलाव करते हैं, यह इतना fmt रन बना देगा। बस इसे अचयनित करें और यह केवल फाइल सेव (या विंडो अनफोकस) पर
चलेगा

1
सिर ऊपर है, यह उत्तर अब कुछ हद तक पुराना है: फ़ाइल वॉचर्स प्लगइन में अब एक पूर्व-निर्मित "गो fmt" वॉचर है जिसे आप बहुत काम करने की आवश्यकता के बिना जोड़ सकते हैं।
हारून शेवर

61

गोगलैंड ईएपी 16 ने ऑन सेव क्रियाओं को हटा दिया और उन्हें फाइल वॉचर्स प्लगइन के साथ बदल दिया ।

यदि आपने पहले सहेजें कार्यों को कॉन्फ़िगर किया है, तो आईडीई आपको प्लगइन स्थापित करने और स्वचालित रूप से सब कुछ कॉन्फ़िगर करने के लिए संकेत देगा। यदि आप इसे स्वयं स्क्रैच से सेट करना चाहते हैं, तो जांचें कि क्या आपके पास फ़ाइल वॉचर्स प्लगइन है और यदि यह इंस्टॉल नहीं है।

Gofmt सक्षम करें:

  1. के पास जाओ Settings | Tools | File Watchers
  2. +बटन पर क्लिक करें और चुनें go fmt
  3. डिफ़ॉल्ट मान अच्छे हैं।
  4. अग्रिम विकल्प चुनें:
    • चौकीदार को ट्रिगर करने के लिए संपादित फ़ाइलों को ऑटो-सेव करें
    • बाहरी परिवर्तन पर नजर रखने वाले को ट्रिगर करें
  5. ओके पर क्लिक करें!

कॉन्फ़िग

आप के लिए goimportsऔर कर सकते हैं gometalinter


8
वास्तव में गो fmt के बजाय केवल goimports को सेटअप करना बेहतर है क्योंकि यह भी fmt करता है, जैसा कि goimports डॉक्स में निर्दिष्ट है: "आयात को ठीक करने के अलावा, goimports भी goftt के रूप में उसी शैली में आपके कोड को प्रारूपित करता है ताकि इसे प्रतिस्थापन के रूप में उपयोग किया जा सके। आपके संपादक के गोफ़्ट-ऑन-सेव हुक के लिए "
dux2


54

यदि आप गोगलैंड का उपयोग कर रहे हैं, तो आपके पास प्राथमिकता के तहत सेव ऑन विकल्प है

यहाँ छवि विवरण दर्ज करें


1
गॉगलैंड गो प्लगइन के समान नहीं है।
स्पौटर

यह लगभग python प्लगइन बनाम pycharm की तरह ही है। अद्यतनों पर एकमात्र संभावित अंतर है। अन्य तो यह - यह आपको ठीक उसी तरह की सुविधाएँ प्रदान करता है।
एलेक्स पावेलेंको

25
सहेजें तंत्र में पदावनत किया गया है और भविष्य में हटा दिया जाएगा। इसके बजाय फाइल वॉचर्स प्लगइन का उपयोग करें
Zangetsu

3
लेकिन नवीनतम GoLand में भी, मुझे यह विकल्प दिखाई नहीं देता है। हालांकि, जब "गो" के तहत फ़ाइल नाम पर राइट क्लिक करता हूं, तो मैं फ़ाइल को fmt कर सकता हूं। लेकिन मुझे आटोसेव के दौरान इसे सक्षम करने का विकल्प नहीं दिखता है।
जिज्ञासु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.