FM으로 통합 포매터
문제
나는 내 코드가 깔끔하고 정돈되어 보이도록 유지하는 것을 좋아해서 포매터를 선호한다. 하지만 IDE들이 포맷팅을 처리하는 방식이 너무 복잡하고 혼란스러운 점이 마음에 들지 않으며, 나는 많은 코드를 Vim을 통해 터미널에서 작성한다. 한동안 나는 파일 경로 또는 디렉토리 경로를 제공하면 제공한 모든 내용을 포맷해 주는 CLI 도구를 찾고 있었다. 즉, 디렉토리를 제공하면 그 디렉토리의 모든 파일을 포맷하고, 제공한 디렉토리에서 .gitignore 파일을 찾으면 이를 존중하도록 동작하는 도구를 원했다. 한동안 해결책을 찾아봤지만 아무것도 찾지 못했다.
해결책
이 문제에 대응하여 나는 ForMatter 또는 줄여서 fm을 개발했다. 이 도구는 현재 초기 개발 단계에 있는 CLI 도구로, 다양한 프로젝트 전반의 스크립트를 포맷하도록 설계되었다. 이 도구는 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을 사용한다. 그래서 이 도구를 오픈소스로 공개했다. 매우 유용하고 실제적인 가치를 제공할 수 있다고 생각하기 때문에 전 세계 누구나 사용 가능하길 바란다. 그러니 지금 fm을 GitHub에서 확인해 보라!