Commit Graph

4 Commits

Author SHA1 Message Date
Fringg
fd85ba1ae1 chore(tooling): восстановить точный паритет с eslint/prettier
- telegram-webview-guards.grit: исключение сузил с подстроки "platform"
  до якорного "src/platform/" — прежний eslint-override действовал ровно на
  src/platform/**, а bare-substring щадил бы любой файл с "platform" в имени
  (проверено: src/platform всё ещё exempt, гвард срабатывает в обычных файлах)
- biome.json: вернул исключения *.min.js/*.min.css из .prettierignore
- lint-staged: вернул форматирование *.css в pre-commit (biome format --write) —
  иначе CI-формат-чек ловил бы css, который хук не трогал
- lint.yml: метка шага "Run ESLint" → "Run linter" (выполняет biome)
2026-07-12 01:35:44 +03:00
kewldan
0abc2f30ae chore(tooling): точечный CSS-линт вместо полного отключения
По итогам разбора Biome 2.5 x Tailwind v3: noUnknownAtRules и
noUnknownFunction не выключаем, а используем их опцию ignore
(tailwind; theme/screen) - детект опечаток в at-rules и функциях
сохраняется. noDuplicateProperties off: наши дубли - прогрессивные
фолбэки (100dvh -> var(--tg-viewport-stable-height)), опции
"разрешить фолбэки" нет (biomejs/biome#6051). noImportantStyles off:
все 31 !important осознанные. @tailwind в ignore из-за
biomejs/biome#7899 (tailwindDirectives их пока не покрывает).
2026-07-12 00:44:35 +03:00
kewldan
c03182e6cf chore(tooling): biome 2.3+ — нативный tailwind-парсер и lineEnding auto
По фичам Biome v2.3: css.parser.tailwindDirectives снимает исключение
CSS из Biome (globals.css снова под формат-контролем; линт CSS выключен
override-ом — tailwind-функции theme() и пр. правила пока не знают),
lineEnding auto повторяет поведение prettier endOfLine: auto (CRLF в
Windows-чекаутах, LF на CI). Однократный формат-дифф globals.css
45+/45- — расхождения CSS-форматтера Biome с Prettier.
2026-07-12 00:28:42 +03:00
kewldan
cf3837163e chore(tooling): миграция с ESLint + Prettier на Biome
Один инструмент вместо девяти dev-зависимостей. Замеры на этом репо
(483 файла, медиана из 3 прогонов, один и тот же компьютер):

- eslint .            ~20.4s  ->  biome lint .    ~2s
- prettier --check .  ~8.8s   ->  biome format .  ~0.2s
- суммарно линт+формат ~29s   ->  biome check .   ~2-3s (~10x)

Паритет с прежними правилами:
- форматирование бинарно совместимо с Prettier-конфигом (biome format
  --write тронул 9 файлов из ~480 — микроразличия);
- запрет window.confirm/alert/open/prompt и navigator.clipboard
  (Telegram WebView) перенесён GritQL-плагином
  biome-plugins/telegram-webview-guards.grit c теми же сообщениями
  и исключениями для src/platform/** и clipboard.ts; плагин сразу
  нашёл window.open в Wheel.tsx под старым eslint-disable —
  переведён на biome-ignore;
- react-hooks-правила: useExhaustiveDependencies/useHookAtTopLevel;
- новые для проекта правила (a11y и пр.) не включались или понижены
  до warning, чтобы миграция не смешивалась с чисткой кода — включать
  можно отдельными PR.

Ограничения (задокументированы): сортировка tailwind-классов
(prettier-plugin-tailwindcss) в Biome пока nursery — не включена;
CSS исключён из Biome (парсер спотыкается о Tailwind-синтаксис
globals.css) — файл один и правится редко.

CI не меняется: имена npm-скриптов lint/format:check сохранены.
lint-staged переведён на biome check --write.
2026-07-12 00:12:15 +03:00