منسق (FM)

مستودع GitHub الخاص بالمشروع

المشكلة

أحب أن يكون شفري يبدو جميلًا ومنظمًا، لذا فأنا من محبي المنسقات. ومع ذلك، لا أحب الطريقة المزدحمة والمربكة التي تتعامل بها بيئات التطوير المتكاملة مع التنسيق، وأكتب الكثير من شفري في الطرفية عبر Vim. لفترة من الوقت، كنت أبحث عن أداة سطر أوامر تكون منسقًا وتسمح لي بتقديم مسار ملف أو مسار دليل وتقوم بتنسيق كل المحتوى الذي أقدمه. أي أنه إذا قدمت دليلًا، فستقوم بتنسيق جميع الملفات في ذلك الدليل وتحترم أي ملف(ات) .gitignore إذا وجدت أيًا منها في الدليل المقدم. بحثت عن حل لفترة ولكن لم أجد شيئًا.

الحل

بسبب ذلك واستجابةً لهذه المشكلة، طورت ForMatter أو باختصار fm، أداة سطر أوامر في مرحلة التطوير المبكرة، صُممت لتنسيق السكريبتات عبر مشاريع مختلفة. توفر هذه الأداة مزيدًا من التحكم في التنسيق مقارنة بالاعتماد على بيئة تطوير متكاملة. على الرغم من أنها لا تزال قيد التطوير، إلا أنها صالحة للاستخدام بالكامل! إذا كنت مهتمًا بالمساهمة، لا تتردد في استنساخ المستودع وإرسال طلب سحب.

التصميم

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 الآن!