Einheitlicher Formatter mit FM

GitHub-Repository des Projekts

Problem

Ich halte meinen Code gerne sauber und organisiert, deshalb bin ich ein Fan von Formatierern. Allerdings gefällt mir nicht, wie unübersichtlich und verwirrend IDEs das Formatieren handhaben, und ich schreibe einen großen Teil meines Codes im Terminal mit Vim. Eine Zeit lang suchte ich nach einem CLI-Tool, das ein Formatter ist und mir erlaubt, entweder einen Dateipfad oder einen Verzeichnispfad anzugeben und das den gesamten angegebenen Inhalt formatiert. Das heißt: Wenn ich ein Verzeichnis angebe, formatiert es alle Dateien in diesem Verzeichnis und beachtet gegebenenfalls vorhandene .gitignore-Dateien im angegebenen Verzeichnis. Ich habe eine Weile nach einer Lösung gesucht, aber nichts gefunden.

Lösung

Aus diesem Grund und als Antwort auf dieses Problem habe ich ForMatter bzw. kurz fm entwickelt, ein CLI-Tool, das sich derzeit in einer frühen Entwicklungsphase befindet und dafür ausgelegt ist, Skripte in verschiedenen Projekten zu formatieren. Dieses Tool bietet mehr Kontrolle über das Formatieren als die Abhängigkeit von einer IDE. Obwohl es noch in Entwicklung ist, ist es voll nutzbar! Wenn du an einer Mitarbeit interessiert bist, fork das Repository gerne und sende einen Pull Request (PR).

Design

fm ist in Bash geschrieben und verwendet im Hintergrund die folgenden Bibliotheken/Formatter: shfmt, black, Prettier, & ClangFormat. Mit diesen Bibliotheken/Formatierern unterstützt fm die folgenden Formate: .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

Fazit

Ich verwende fm intensiv auf meinem persönlichen System, und viele Mitwirkende oder Kollaborateure, mit denen ich arbeite, benutzen es ebenfalls. Deshalb habe ich es als Open Source veröffentlicht. Ich halte es für sehr nützlich und denke, dass es echten Mehrwert bieten kann, deshalb möchte ich, dass die ganze Welt es nutzen kann. Schau dir fm jetzt auf GitHub an!