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 کو وسیع پیمانے پر استعمال کرتا ہوں، اور بہت سے معاونین یا ساتھی جن کے ساتھ میں کام کرتا ہوں، وہ بھی اسے استعمال کرتے ہیں۔ اسی لیے میں نے اسے اوپن سورس کیا۔ میرے خیال میں یہ بہت مفید ہے اور حقیقی قدر فراہم کر سکتا ہے، اس لیے میں چاہتا ہوں کہ پوری دنیا اسے استعمال کر سکے۔ یہ جانتے ہوئے، اب GitHub پر fm ملاحظہ کریں!