Formattatore unificato con FM

Repository GitHub del progetto

Problema

Mi piace mantenere il mio codice ordinato e ben organizzato, quindi sono un fan dei formattatori. Tuttavia, non mi piace come gli IDE, spesso affollati e confusi, gestiscano la formattazione, e scrivo gran parte del mio codice nel terminale usando Vim. Per un po’ di tempo ho cercato uno strumento CLI che fosse un formattatore che mi permettesse di fornire un percorso di file o di directory e che formattasse tutto il contenuto fornito. Cioè, se fornisco una directory, formatterà tutti i file in quella directory e rispetterà eventuali file .gitignore se ne trova nella directory fornita. Ho cercato una soluzione per un po’ ma non ho trovato nulla.

Soluzione

Per questo motivo e in risposta a questo problema, ho sviluppato ForMatter o, in breve, fm, uno strumento CLI attualmente in sviluppo iniziale, progettato per formattare script in diversi progetti. Questo strumento offre più controllo sulla formattazione rispetto all’affidarsi a un IDE. Anche se è ancora in sviluppo, è completamente utilizzabile! Se sei interessato a contribuire, sentiti libero di effettuare il fork del repo e inviare una PR.

Progettazione

fm è scritto in Bash script e utilizza in background le seguenti librerie/formattatori: shfmt, black, Prettier, e ClangFormat

Con queste librerie/formattatori, fm supporta i seguenti formati: .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, e .java

Conclusione

Uso fm estensivamente sul mio sistema personale, e molti collaboratori con cui lavoro lo usano anch’essi. Per questo motivo l’ho reso open-source. Penso che sia molto utile e che possa fornire un valore reale, quindi voglio che il mondo intero possa usarlo. Detto questo, dai un’occhiata a fm su GitHub adesso!