Trình Định Dạng Thống Nhất với FM
Vấn đề
Tôi thích giữ mã của mình trông gọn gàng và có tổ chức, vì vậy tôi là fan của các trình định dạng. Tuy nhiên, tôi không thích cách các IDE xử lý việc định dạng vì nó rối rắm và khó theo dõi, và tôi viết nhiều mã trong terminal bằng Vim. Một thời gian, tôi đã tìm kiếm một công cụ CLI là một trình định dạng cho phép tôi cung cấp đường dẫn tệp hoặc đường dẫn thư mục và nó sẽ định dạng toàn bộ nội dung tôi cung cấp. Cụ thể, nếu tôi cung cấp một thư mục, nó sẽ định dạng tất cả các tệp trong thư mục đó và tôn trọng bất kỳ tệp .gitignore nào nếu nó tìm thấy trong thư mục được cung cấp. Tôi đã tìm kiếm giải pháp trong một thời gian nhưng không tìm thấy gì.
Giải pháp
Để giải quyết vấn đề này, tôi đã phát triển ForMatter hay gọi ngắn gọn là fm, một công cụ CLI hiện đang trong giai đoạn phát triển ban đầu, được thiết kế để định dạng các tập lệnh trên nhiều dự án. Công cụ này cung cấp nhiều quyền kiểm soát hơn đối với việc định dạng so với việc phụ thuộc vào một IDE. Mặc dù vẫn đang phát triển, nó hoàn toàn có thể sử dụng được! Nếu bạn quan tâm muốn đóng góp, hãy thoải mái fork kho và gửi một PR.
Thiết kế
fm được viết bằng Bash script và sử dụng các thư viện/trình định dạng sau ở phía sau: shfmt, black, Prettier, & ClangFormat
Với các thư viện/trình định dạng này, fm hỗ trợ các định dạng sau: .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
Kết luận
Tôi sử dụng fm rất nhiều trên hệ thống cá nhân của mình, và nhiều đóng góp viên hoặc cộng tác viên mà tôi làm việc cùng cũng sử dụng nó. Đó là lý do tôi mở mã nguồn nó. Tôi nghĩ nó rất hữu ích và có thể mang lại giá trị thực, vì vậy tôi muốn cả thế giới có thể sử dụng nó. Theo đó, hãy xem fm trên GitHub ngay bây giờ!