منسق موحد مع FM
المشكلة
أحب أن تبدو شيفرتي جميلة ومنظمة، لذا أنا من محبي أدوات التنسيق. ومع ذلك، لا أحب كيف تتعامل بيئات التطوير المتكاملة (IDEs) مع التنسيق لأنها تصبح مزدحمة ومربكة، وغالبًا ما أكتب الكثير من شيفرتي في الطرفية عبر Vim. لفترة، كنت أبحث عن أداة سطر أوامر تكون منسقًا تسمح لي بتقديم إما مسار ملف أو مسار مجلد وتقوم بتنسيق كل المحتوى الذي أقدمه. بمعنى أنه إذا قدمت مجلدًا، فستقوم بتنسيق كل الملفات في ذلك المجلد واحترام أي ملفات .gitignore إذا وجدت في المجلد المقدم. بحثت عن حل لفترة لكن لم أجد شيئًا.
الحل
بناءً على ذلك وباستجابة لهذه المشكلة، قمت بتطوير ForMatter أو اختصارًا fm، أداة سطر أوامر لا تزال في طور التطوير المبكر، مصممة لتنسيق السكربتات عبر مشاريع مختلفة. توفر هذه الأداة تحكمًا أكبر في التنسيق مقارنةً بالاعتماد على بيئة تطوير متكاملة. على الرغم من أنها لا تزال قيد التطوير، إلا أنها قابلة للاستخدام بالكامل! إذا كنت مهتمًا بالمساهمة، فلا تتردد في عمل fork للمستودع وتقديم 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 الآن!