Zunifikowany formatter z FM
Problem
Lubię, gdy mój kod wygląda ładnie i jest uporządkowany, więc jestem fanem formatterów. Jednak nie podoba mi się, jak zajęte i mylące środowiska IDE obsługują formatowanie, a dużo swojego kodu piszę w terminalu przez Vim. Przez pewien czas szukałem narzędzia CLI, które byłoby formatterem pozwalającym mi podać albo ścieżkę do pliku, albo ścieżkę do katalogu i sformatować całą dostarczoną przeze mnie zawartość. To znaczy, jeśli podam katalog, sformatuje wszystkie pliki w tym katalogu i uwzględni wszelkie pliki .gitignore, jeśli jakieś znajdzie w podanym katalogu. Szukałem rozwiązania przez jakiś czas, ale nic nie znalazłem.
Rozwiązanie
Z tego powodu oraz w odpowiedzi na ten problem opracowałem ForMatter albo w skrócie fm, narzędzie CLI obecnie we wczesnym etapie rozwoju, zaprojektowane do formatowania skryptów w różnych projektach. To narzędzie oferuje większą kontrolę nad formatowaniem w porównaniu do polegania na IDE. Chociaż nadal jest w fazie rozwoju, jest w pełni użyteczne! Jeśli chcesz się przyczynić, śmiało sforkuj repozytorium i wyślij PR.
Projekt
fm jest napisany w skrypcie Bash i korzysta w tle z następujących bibliotek/formatterów: shfmt, black, Prettier, oraz ClangFormat. Dzięki tym bibliotekom/formatterom fm obsługuje następujące formaty: .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, oraz .java
Wnioski
Używam fm intensywnie na swoim prywatnym systemie, a wielu współtwórców lub współpracowników, z którymi pracuję, również go używa. Dlatego udostępniłem go jako open source. Uważam, że jest bardzo przydatny i może przynieść realną wartość, więc chcę, aby cały świat mógł z niego korzystać. Wiedząc to, sprawdź fm na GitHubie już teraz!