Geünificeerde Formatter met FM
Probleem
Ik vind het prettig om mijn code er netjes en georganiseerd uit te laten zien, dus ik ben een fan van formatters. Ik vind echter niet prettig hoe druk en verwarrend IDE’s met formatteren omgaan, en ik schrijf veel van mijn code in de terminal via Vim. Een tijdlang was ik op zoek naar een CLI-tool die een formatter is waarmee ik ofwel een bestandspad of een mappad kan opgeven en die alle content die ik opgaf formatteert. Dat wil zeggen: als ik een map opgeef, zal het alle bestanden in die map formatteren en eventuele .gitignore-bestand(en) respecteren als het er een vindt in de opgegeven map. Ik heb een tijdje naar een oplossing gezocht, maar niets gevonden.
Oplossing
Door dit en als reactie op dit probleem heb ik ForMatter ontwikkeld, of kortweg fm, een CLI-tool die momenteel in een vroege ontwikkelingsfase zit en is ontworpen om scripts in verschillende projecten te formatteren. Deze tool biedt meer controle over formatteren dan vertrouwen op een IDE. Hoewel het nog in ontwikkeling is, is het volledig bruikbaar! Als je geïnteresseerd bent in bijdragen, voel je vrij om de repo te forken en een PR in te dienen.
Ontwerp
fm is geschreven in Bash-script en gebruikt op de achtergrond de volgende bibliotheken/formatters: shfmt, black, Prettier, & ClangFormat. Met deze bibliotheken/formatters ondersteunt fm de volgende formaten: .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
Conclusie
Ik gebruik fm uitgebreid op mijn persoonlijke systeem, en veel bijdragers of samenwerkingspartners met wie ik werk gebruiken het ook. Daarom heb ik het open-source gemaakt. Ik denk dat het erg nuttig is en echte waarde kan bieden, dus wil ik dat de hele wereld het kan gebruiken. Nu je dit weet, bekijk fm nu op GitHub!