Унифицированный форматировщик с FM

Репозиторий проекта на GitHub

Проблема

Мне нравится, когда мой код выглядит аккуратно и организованно, поэтому я поклонник форматтеров. Однако мне не нравится, как громоздко и запутанно IDE обрабатывают форматирование, и я пишу большую часть своего кода в терминале через Vim. Долгое время я искал инструмент командной строки, который был бы форматтером и позволял бы мне указывать либо путь к файлу, либо путь к директории, и он форматировал бы всё предоставленное содержимое. То есть, если я указываю директорию, он отформатирует все файлы в этой директории и будет уважать любые файлы .gitignore, если найдет их в указанной директории. Я искал решение какое-то время, но ничего не нашел.

Решение

В ответ на эту проблему я разработал ForMatter, или коротко fm, инструмент командной строки, который находится на ранней стадии разработки и предназначен для форматирования скриптов в различных проектах. Этот инструмент предлагает больше контроля над форматированием по сравнению с полаганием на IDE. Несмотря на то, что он все еще в разработке, он полностью работоспособен! Если вы хотите внести вклад, не стесняйтесь создать форк репозитория и отправить PR.

Дизайн

fm написан на Bash и использует следующие библиотеки/форматтеры в фоновом режиме: shfmt, black, Prettier, & ClangFormat. С этими библиотеками/форматтерами fm поддерживает следующие форматы: .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

Заключение

Я активно использую fm на своей личной системе, и многие участники и сотрудники, с которыми я работаю, также его используют. Именно поэтому я опубликовал его с открытым исходным кодом. Я считаю, что он очень полезен и может приносить реальную пользу, поэтому хочу, чтобы весь мир мог им пользоваться. Узнать больше и посмотреть fm можно на GitHub прямо сейчас!