यूनिफाइड फॉर्मेटर विथ एफएम
समस्या
मुझे अपना कोड सुंदर और व्यवस्थित रखना पसंद है, इसलिए मैं फॉर्मेटर्स का प्रशंसक हूं। हालांकि, मुझे यह पसंद नहीं है कि व्यस्त और भ्रमित IDE फॉर्मेटिंग को कैसे संभालते हैं, और मैं अपना अधिकांश कोड टर्मिनल के माध्यम से विम में लिखता हूं। कुछ समय के लिए, मैं एक CLI टूल की तलाश कर रहा था जो एक फॉर्मेटर हो जो मुझे एक फ़ाइल पथ या निर्देशिका पथ प्रदान करने की अनुमति देता है और यह सभी सामग्री को फॉर्मेट करता है जो मैंने प्रदान की है। इसका मतलब है, यदि मैं एक निर्देशिका प्रदान करता हूं, तो यह उस निर्देशिका में सभी फ़ाइलों को फॉर्मेट करेगा और यदि इसे प्रदान की गई निर्देशिका में कोई .gitignore फ़ाइल मिलती है, तो इसका सम्मान करेगा। मैंने कुछ समय के लिए एक समाधान की खोज की लेकिन कुछ नहीं मिला।
समाधान
इसकी वजह से और इस समस्या के जवाब में, मैंने फॉरमैटर या संक्षेप में fm विकसित किया, एक CLI टूल जो वर्तमान में प्रारंभिक विकास में है, जिसे विभिन्न परियोजनाओं में स्क्रिप्ट को फॉर्मेट करने के लिए डिज़ाइन किया गया है। यह टूल IDE पर निर्भर रहने की तुलना में फॉर्मेटिंग पर अधिक नियंत्रण प्रदान करता है। जबकि यह अभी भी विकास में है, यह पूरी तरह से उपयोग योग्य है! यदि आप योगदान देने में रुचि रखते हैं, तो कृपया रेपो को फोर्क करें और एक PR सबमिट करें।
डिज़ाइन
fm बैश स्क्रिप्ट में लिखा गया है और बैकग्राउंड में निम्नलिखित पुस्तकालयों/फॉर्मेटर्स का उपयोग करता है: 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 को गिटहब पर देखें!