منسق (FM)
المشكلة
أحب أن يكون شفري يبدو جميلًا ومنظمًا، لذا فأنا من محبي المنسقات. ومع ذلك، لا أحب الطريقة المزدحمة والمربكة التي تتعامل بها بيئات التطوير المتكاملة مع التنسيق، وأكتب الكثير من شفري في الطرفية عبر 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 الآن!