Formatador (FM)
Problem
Eu gosto de manter meu código bonito e organizado, então sou fã de formatadores. No entanto, não gosto de como IDEs ocupadas e confusas lidam com a formatação, e escrevo muito do meu código no terminal através do Vim. Por um tempo, procurei uma ferramenta CLI que seja um formatador que me permita fornecer um caminho de arquivo ou caminho de diretório e ele formate todo o conteúdo que eu forneci. Ou seja, se eu fornecer um diretório, ele formatará todos os arquivos naquele diretório e respeitará quaisquer arquivos .gitignore
se encontrar algum no diretório fornecido. Procurei uma solução por um tempo, mas não encontrei nada.
Solution
Por causa disso e em resposta a esse problema, desenvolvi ForMatter ou, abreviadamente, fm, uma ferramenta CLI atualmente em desenvolvimento inicial, projetada para formatar scripts em vários projetos. Esta ferramenta oferece mais controle sobre a formatação em comparação com depender de uma IDE. Embora ainda esteja em desenvolvimento, já é totalmente utilizável! Se você estiver interessado em contribuir, sinta-se à vontade para fazer fork do repositório e enviar um PR.
Design
fm é escrito em script Bash e usa as seguintes bibliotecas/formatadores em segundo plano: shfmt, black, Prettier, & ClangFormat
Com essas bibliotecas/formatadores, fm suporta os seguintes 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, e .java
Conclusion
Eu uso fm extensivamente no meu sistema pessoal, e muitos contribuidores ou colaboradores com quem trabalho também o utilizam. Por isso eu o tornei código aberto. Acho que ele é muito útil e pode proporcionar valor real, então quero que o mundo inteiro possa usá-lo. Sabendo disso, confira fm no GitHub agora!