FM সহ একক ফরম্যাটার
সমস্যা
আমি চাই আমার কোড সুন্দর ও সংগঠিত দেখাক, তাই আমি ফরম্যাটারগুলোর অনুরাগী। তবে, আমি পছন্দ করি না কিভাবে ব্যস্ত এবং বিভ্রান্তিকরভাবে IDE-গুলো ফরম্যাটিং পরিচালনা করে, এবং আমি অনেক কোড টার্মিনালে Vim দিয়ে লিখি। কিছুদিন ধরে আমি এমন একটি CLI টুল খুঁজছিলাম যা একটি ফরম্যাটার এবং যা আমাকে কেবল একটি ফাইল পাথ বা ডিরেক্টরি পাথ প্রদান করতে দেয় এবং এটি প্রদত্ত সকল কন্টেন্ট ফরম্যাট করে। অর্থাৎ, যদি আমি একটি ডিরেক্টরি দিই, এটি সেই ডিরেক্টরির সব ফাইল ফরম্যাট করবে এবং যদি প্রদত্ত ডিরেক্টরিতে কোনো .gitignore ফাইল(গুলি) পাওয়া যায় তবে সেটিও সম্মান করবে। আমি কিছুদিন সমাধান খুঁজেছি কিন্তু কিছুই পেলাম না।
সমাধান
এই সমস্যার প্রতিক্রিয়ায় এবং এর কারণে, আমি ForMatter বা সংক্ষেপে fm তৈরি করেছি, একটি CLI টুল যা বর্তমানে প্রাথমিক উন্নয়নের পর্যায়ে আছে এবং বিভিন্ন প্রজেক্ট জুড়ে স্ক্রিপ্ট ফরম্যাট করার জন্য ডিজাইন করা। এই টুলটি IDE-র উপর নির্ভর করার চেয়ে ফরম্যাটিংয়ে আরও নিয়ন্ত্রণ প্রদান করে। যদিও এটা এখনও উন্নয়নের অধীন, এটি সম্পূর্ণ ব্যবহারযোগ্য! আপনি যদি অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে রিপো 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 ব্যবহার করি, এবং আমি যে অনেক কোডকর্তা বা সহযোগীর সঙ্গে কাজ করি তাদের অনেকেই এটিকে ব্যবহার করে। এ কারণেই আমি এটি ওপেন-সোর্স করেছি। আমি মনে করি এটি খুবই উপকারী এবং বাস্তব মূল্য প্রদান করতে পারে, তাই আমি চাই সারা বিশ্বের মানুষ এটিকে ব্যবহার করতে পারে। এইটি মাথায় রেখে, এখনই GitHub এ fm দেখে নিন!