قالببند یکپارچه با FM
مشکل
من دوست دارم کدم ظاهر تمیز و منظمی داشته باشد، بنابراین از قالببندها خوشم میآید. با این حال، از اینکه IDEها چطور قالببندی را شلوغ و گیجکننده مدیریت میکنند خوشم نمیآید، و بخش زیادی از کدم را در ترمینال از طریق Vim مینویسم. مدتی بود که به دنبال یک ابزار CLI میگشتم که یک قالببند باشد و به من اجازه دهد یا مسیر یک فایل یا مسیر یک پوشه را بدهم و همهٔ محتوایی را که ارائه کردهام قالببندی کند. یعنی اگر یک پوشه ارائه کنم، همهٔ فایلهای آن پوشه را قالببندی میکند و اگر در پوشهٔ ارائهشده هر فایل .gitignoreیی پیدا کند، به آن احترام میگذارد. مدتی برای یافتن راهحل جستوجو کردم اما چیزی پیدا نکردم.
راهحل
بهدلیل این موضوع و در پاسخ به این مشکل، من ForMatter یا بهاختصار fm را توسعه دادم؛ یک ابزار CLI که در حال حاضر در مراحل اولیهٔ توسعه است و برای قالببندی اسکریپتها در پروژههای مختلف طراحی شده است. این ابزار در مقایسه با تکیه بر یک IDE، کنترل بیشتری روی قالببندی ارائه میدهد. با اینکه هنوز در حال توسعه است، کاملاً قابل استفاده است! اگر علاقهمند به مشارکت هستید، آزادید که مخزن را فورک کنید و یک 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 را در گیتهاب ببینید!