Pinag-isang Formatter gamit ang FM
Problema
Gusto kong panatilihing maayos at organisado ang itsura ng aking code, kaya pabor ako sa mga formatter. Gayunpaman, hindi ko gusto kung gaano ka-masalimuot at nakakalito ang paghawak ng pag-format ng mga IDE, at madalas kong sinusulat ang aking code sa terminal gamit ang Vim. Sa loob ng ilang panahon, naghahanap ako ng isang CLI tool na isang formatter na nagpapahintulot sa akin na magbigay ng path ng file o path ng direktoryo at i-format nito ang lahat ng nilalaman na ibinigay ko. Ibig sabihin, kung magbibigay ako ng isang direktoryo, i-format nito ang lahat ng mga file sa direktoryong iyon at igagalang ang anumang .gitignore file(s) kung makakita ito ng anumang nasa ibinigay na direktoryo. Naghahanap ako ng solusyon nang ilang panahon ngunit wala akong natagpuan.
Solusyon
Dahil dito at bilang tugon sa problemang ito, binuo ko ang ForMatter o sa maikling sabi fm, isang CLI tool na kasalukuyang nasa maagang yugto ng pag-unlad, na idinisenyo upang i-format ang mga script sa iba’t ibang proyekto. Nagbibigay ang tool na ito ng mas maraming kontrol sa pag-format kumpara sa pag-asa sa isang IDE. Bagaman nasa pag-develop pa ito, ganap na nagagamit na! Kung interesado kang mag-ambag, malayang i-fork ang repo at magsumite ng PR.
Disenyo
fm ay isinulat sa Bash script at sa likod nito ay gumagamit ng mga sumusunod na library/formatter: shfmt, black, Prettier, & ClangFormat. Sa pamamagitan ng mga library/formatter na ito, sinusuportahan ng fm ang mga sumusunod na format: .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
Konklusyon
Ginagamit ko nang malawakan ang fm sa aking personal na sistema, at marami sa mga kontribyutor o kolaborator na katrabaho ko ay ginagamit din ito. Iyon ang dahilan kung bakit inilabas ko ito bilang open-source. Sa tingin ko napaka-kapaki-pakinabang nito at makakapagbigay ito ng tunay na halaga, kaya gusto kong magamit ito ng buong mundo. Sa kaalamang ito, tingnan ang fm sa GitHub ngayon!