Formatador Unificado com FM
Repositório do GitHub do Projeto
Problema
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 fosse um formatador que me permitisse fornecer um caminho de arquivo ou um caminho de diretório e que formatasse todo o conteúdo que eu forneci. Ou seja, se eu fornecer um diretório, ele formatará todos os arquivos nesse diretório e respeitará qualquer arquivo .gitignore se encontrar algum 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 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 a dependência de uma IDE. Embora ainda esteja em desenvolvimento, é totalmente utilizável! Se você estiver interessado em contribuir, sinta-se à vontade para bifurcar o 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, & .java
Conclusão
Eu uso fm extensivamente no meu sistema pessoal, e muitos colaboradores ou parceiros com quem trabalho também o utilizam. É por isso que eu o disponibilizei como código aberto. Eu acho que é muito útil e pode fornecer um valor real, então quero que o mundo todo possa usá-lo. Sabendo disso, confira fm no GitHub agora!