Formateador Unificado con FM

Repositorio de GitHub del Proyecto

Problema

Me gusta mantener mi código bonito y organizado, así que soy fan de los formateadores. Sin embargo, no me gusta cómo los IDEs manejan el formateo de manera tan ocupada y confusa, y escribo gran parte de mi código en la terminal a través de Vim. Durante un tiempo, estuve buscando una herramienta CLI que sea un formateador que me permita proporcionar ya sea una ruta de archivo o una ruta de directorio y que formatee todo el contenido que proporcioné. Es decir, si proporciono un directorio, formateará todos los archivos en ese directorio y respetará cualquier archivo(s) .gitignore si encuentra alguno en el directorio proporcionado. Busqué una solución durante un tiempo pero no encontré nada.

Solución

Debido a esto y en respuesta a este problema, desarrollé ForMatter o en corto fm, una herramienta CLI actualmente en desarrollo temprano, diseñada para formatear scripts a través de varios proyectos. Esta herramienta ofrece más control sobre el formateo en comparación con depender de un IDE. Aunque todavía está en desarrollo, ¡es completamente utilizable! Si estás interesado en contribuir, siéntete libre de bifurcar el repositorio y enviar un PR.

Diseño

fm está escrito en script Bash y utiliza las siguientes bibliotecas/formateadores en segundo plano: shfmt, black, Prettier, y ClangFormat

Con estas bibliotecas/formateadores, fm soporta los siguientes formatos: .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, y .java

Conclusión

Uso fm extensivamente en mi sistema personal, y muchos colaboradores o contribuyentes con los que trabajo también lo utilizan. Por eso lo hice de código abierto. Creo que es muy útil y puede proporcionar un valor real, así que quiero que todo el mundo pueda usarlo. Sabiendo esto, ¡mira fm en GitHub ahora!