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 ব্যাপকভাবে ব্যবহার করি, এবং বহু অবদানকারী বা সহযোগীরাও এটিকে ব্যবহার করেন। এজন্যই আমি এটি ওপেন-সোর্স করেছি। আমার মনে হয় এটি অত্যন্ত উপকারী এবং বাস্তব মূল্য দিতে পারে, তাই আমি চাই পুরো বিশ্ব এটি ব্যবহার করতে সক্ষম হোক। এই কথা মাথায় রেখে, এখনই fm দেখুন GitHub!