FM के साथ एकीकृत फ़ॉर्मैटर
समस्या
मुझे अपना कोड सुन्दर और व्यवस्थित रखना पसंद है, इसलिए मैं फ़ॉर्मैटर का प्रशंसक हूँ। हालाँकि, मुझे यह पसंद नहीं है कि 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 पर देखें!