Formateador Unificado con FM

Repositorio de GitHub del proyecto

Problema

Me gusta mantener mi código con buena apariencia y organizado, así que soy fan de los formateadores. Sin embargo, no me gusta lo recargado y confuso con que los IDE manejan el formateo, y escribo gran parte de mi código en la terminal usando Vim. Durante un tiempo estuve buscando una herramienta de CLI que fuera un formateador que me permitiera proporcionar ya sea una ruta de archivo o una ruta de directorio y que formateara todo el contenido que proporcionara. Es decir, si proporciono un directorio, formateará todos los archivos en ese directorio y respetará cualquier archivo .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 resumen, fm, una herramienta de CLI actualmente en desarrollo temprano, diseñada para formatear scripts en varios proyectos. Esta herramienta ofrece más control sobre el formateo en comparación con confiar en un IDE. Aunque todavía está en desarrollo, ¡es totalmente utilizable! Si estás interesado en contribuir, siéntete libre de hacer un fork del repositorio y enviar una Pull Request (PR).

Diseño

fm está escrito en Bash script y utiliza las siguientes bibliotecas/formateadores en segundo plano: shfmt, black, Prettier, & 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, & .java

Conclusión

Uso fm extensamente en mi sistema personal, y muchos colaboradores o contribuyentes con los que trabajo también lo usan. Por eso lo publiqué como código abierto. Creo que es muy útil y puede aportar un valor real, así que quiero que todo el mundo pueda usarlo. Con esto en mente, ¡echa un vistazo a fm en GitHub ahora!