फ़ॉर्मेटर (FM)

प्रोजेक्ट का GitHub रेपो

समस्या

मुझे अपना कोड साफ़ और व्यवस्थित रखना पसंद है, इसलिए मैं फ़ॉर्मेटर्स का प्रशंसक हूँ। हालांकि, मुझे IDEs के व्यस्त और भ्रमित करने वाले फ़ॉर्मेटिंग तरीके पसंद नहीं हैं, और मैं अपना बहुत सारा कोड टर्मिनल में Vim के माध्यम से लिखता हूँ। कुछ समय तक, मैं एक CLI टूल की तलाश में था जो एक फ़ॉर्मेटर हो और मुझे फ़ाइल पथ या डायरेक्टरी पथ प्रदान करने की अनुमति दे और वह मेरे द्वारा प्रदान की गई सभी सामग्री को फ़ॉर्मेट करे। अर्थात, यदि मैं एक डायरेक्टरी प्रदान करता हूँ, तो यह उस डायरेक्टरी की सभी फ़ाइलों को फ़ॉर्मेट करेगा और यदि वह प्रदान की गई डायरेक्टरी में कोई .gitignore फ़ाइल(ें) पाता है तो उनका सम्मान करेगा। मैंने कुछ समय तक समाधान की खोज की लेकिन कुछ नहीं मिला।

समाधान

इसी कारण और इस समस्या के जवाब में, मैंने ForMatter या संक्षेप में fm विकसित किया, जो वर्तमान में शुरुआती विकास चरण में एक CLI टूल है, जिसे विभिन्न प्रोजेक्ट्स में स्क्रिप्ट्स को फ़ॉर्मेट करने के लिए डिज़ाइन किया गया है। यह टूल IDE पर निर्भर रहने की तुलना में फ़ॉर्मेटिंग पर अधिक नियंत्रण प्रदान करता है। जबकि यह अभी भी विकास में है, यह पूरी तरह से उपयोग योग्य है! यदि आप योगदान देने में रुचि रखते हैं, तो रेपो को फोर्क करने और एक PR सबमिट करने में संकोच न करें।

डिज़ाइन

fm Bash स्क्रिप्ट में लिखा गया है और पृष्ठभूमि में निम्नलिखित लाइब्रेरीज़/फ़ॉर्मेटर्स का उपयोग करता है: shfmt, black, Prettier, & ClangFormat

इन लाइब्रेरीज़/फ़ॉर्मेटर्स के साथ, fm निम्नलिखित फ़ॉर्मैट्स को सपोर्ट करता है: .py, .sh, .bash, .dash, .ksh, .js, .jsx, .ts, .tsx, .json, .md, .html, .css, .yml, .yaml, .graphql, .vue, .scss, .less, .c, .cpp, .h, .hpp, .m, .mm, & .java

निष्कर्ष

मैं अपने व्यक्तिगत सिस्टम पर fm का व्यापक रूप से उपयोग करता हूँ, और कई योगदानकर्ता या सहयोगी जिनके साथ मैं काम करता हूँ, वे भी इसका उपयोग करते हैं। इसलिए मैंने इसे ओपन-सोर्स किया। मेरा मानना है कि यह बहुत उपयोगी है और वास्तविक मूल्य प्रदान कर सकता है, इसलिए मैं चाहता हूँ कि पूरी दुनिया इसे उपयोग कर सके। इसे जानते हुए, अभी fm को GitHub पर देखें!