Formatador Unificado com FM
Repositório do Projeto no GitHub
Problema
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 formatação, e escrevo grande parte do meu código no terminal usando o Vim. Por um tempo, procurei por uma ferramenta de linha de comando que fosse um formatador que me permitisse fornecer ou um caminho de arquivo ou um caminho de diretório e formatasse todo o conteúdo fornecido. Ou seja, se eu fornecer um diretório, ele formatará todos os arquivos naquele diretório e respeitará quaisquer arquivos .gitignore que encontrar no diretório fornecido. Procurei uma solução por um tempo, mas não encontrei nada.
Solução
Devido a isso e em resposta a esse problema, desenvolvi o ForMatter ou, em resumo, fm, uma ferramenta de linha de comando 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 um fork do repositório e enviar um PR.
Projeto
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, & .java
Conclusão
Eu uso o fm extensivamente no meu sistema pessoal, e muitos colaboradores com quem trabalho também o utilizam. Por isso, disponibilizei-o como código aberto. Acho que é muito útil e pode oferecer valor real, então quero que o mundo inteiro possa usá-lo. Com isso em mente, confira o fm no GitHub agora!