Уніфікований форматувач з FM
Проблема
Мені подобається, коли мій код виглядає акуратно й організовано, тому я прихильник форматувачів. Однак мені не подобається, як IDE обробляють форматування — вони можуть бути перевантаженими й заплутаними, і я багато коду пишу в терміналі через Vim. Довгий час я шукав інструмент командного рядка-форматувач, який дозволяє передати або шлях до файлу, або шлях до директорії, і він форматував би весь вміст, який я вказав. Тобто, якщо я вкажу директорію, він відформатує всі файли в цій директорії та буде враховувати будь-які файли .gitignore, якщо вони знайдуться в зазначеній директорії. Я довго шукав рішення, але нічого не знайшов.
Рішення
У відповідь на цю проблему я розробив ForMatter, або коротко fm — інструмент командного рядка, який наразі знаходиться на ранній стадії розробки й призначений для форматування скриптів у різних проєктах. Цей інструмент дає більше контролю над форматуванням порівняно з покладанням на IDE. Хоч він ще в розробці, він повністю придатний до використання! Якщо ви зацікавлені у внеску, не соромтеся forkнути репозиторій і надіслати 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 на GitHub зараз!