Pinag-isang Tagapag-format gamit ang FM

GitHub Repo ng Proyekto

Problema

Gusto kong panatilihing maganda at organisado ang hitsura ng aking code, kaya tagahanga ako ng mga tagapag-format. Gayunpaman, ayaw ko kung gaano ka-busy at nakakalito ang paghawak ng pag-format ng mga IDE, at marami kong sinusulat na code sa terminal gamit ang Vim. Sa loob ng ilang panahon, naghahanap ako ng isang tool ng CLI na isang tagapag-format na nagpapahintulot sa akin na magbigay alinman sa isang path ng file o path ng direktoryo at ini-format nito ang lahat ng nilalaman na ibinigay ko. Ibig sabihin, kung magbibigay ako ng isang direktoryo, i-aformat nito ang lahat ng mga file sa direktoryong iyon at igagalang ang anumang .gitignore file(s) kung makakita ito ng mga iyon sa ibinigay na direktoryo. Naghanap ako ng solusyon nang ilang panahon ngunit walang nahanap.

Solusyon

Dahil dito at bilang tugon sa problemang ito, binuo ko ang Tagapag-format o sa maikling fm, isang tool ng CLI na kasalukuyang nasa maagang development, 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 itong magagamit! Kung interesado kang mag-ambag, malayang i-fork ang repo at mag-submit ng PR.

Disenyo

fm ay nakasulat sa Bash script at gumagamit ng mga sumusunod na library/formatter sa background: shfmt, black, Prettier, & ClangFormat

Sa 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 maraming kontribyutor o kolaborador na katrabaho ko ang gumagamit din nito. Iyon ang dahilan kung bakit ginawa kong open-source ito. Sa tingin ko napaka-kapaki-pakinabang nito at makakapagbigay ito ng totoong halaga, kaya gusto kong magamit ito ng buong mundo. Dahil dito, tingnan ang fm sa GitHub ngayon!