Fallow – главная фишка IDEA теперь в VS Code и Neovim

Я долго работал в WebStorm и привык к ее фишкам: среда сразу подсвечивает неиспользуемые переменные, функции, дубликаты и т.д. Для меня это одна из ключевых причин использовать jetbrains IDEA.

Мне часто приходилось сталкивался с одной и той же болью. Заходишь в файл (особенно в слой утилит), а там висит куча неиспользуемого кода. Я не понимал: почему коллеги его не удаляют? А потом попробовал VS Code и как понял. Они просто его не видят! Их редактор не подсвечивает эти проблемы так, как это делает WebStorm.

Со временем WebStorm перестал устраивать меня по скорости и прожорливости к ресурсам. Я начал искать альтернативы и перешел на Neovim. Но из коробки в нем нет такой глубокой индексации (и не только ее, но это другая тема), потому что он использует тот же lsp сервер, что и VS Code. Какое-то время пришлось мириться с «слепой зоной», пока я не наткнулся на Fallow.

Что такое Fallow?

Fallow — это быстрая система анализа кода для TypeScript и JavaScript, написанная на Rust. В отличие от обычных линтеров, она не просто проверяет правила, а выстраивает карту связей всего проекта. Это позволяет находить скрытые архитектурные проблемы.

Что крутого умеет утилита:

  • Ищет «мертвый» код. Находит неиспользуемые файлы, экспорты, типы, члены классов/enum и лишние npm-зависимости.
  • Обнаруживает дубликаты. Через суффиксный детектор ищет повторы не только в TS/JS, но и в CSS-стилях.
  • Считает Health Score. Выводит оценку здоровья кодовой базы от 0 до 100 на основе когнитивной сложности и запутанности связей.
  • Проверяет архитектуру. Из коробки поддерживает валидацию паттернов Bulletproof, Layered, Hexagonal и Feature-Sliced Design.

Дополнительно инструмент поддерживает интеграцию с CI/CD, работу с AI-агентами и MCP.

Как настроить:

Утилита ставится глобально одной командой:

npm install -g fallow

Запустить полный аудит проекта и сразу подсветить дубликаты с мертвым кодом:

fallow audit

У Fallow есть плагины для VS Code и Neovim, которые возвращают привычный опыт работы:

  1. VS Code: ставите плагин и сразу видите подсветку прямо в открытых файлах.
  2. Neovim: настраиваете fallow_lsp и подключаете плагин xeind/vallow.nvim. Вы получаете точно такой же UI, как в VS Code.

Для корректной работы нужно настроить конфигурационный файл (указать точки входа и исключения). Мой минимальный конфиг можно взять за основу:

{ "$schema": "https://raw.githubusercontent.com/fallow-rs/fallow/main/schema.json", "entry": [ "src/app/index.ts", ], "ignoreExportsUsedInFile": true, "ignoreExports": [ { "file": "*/**/index.ts", "exports": ["*"] } ], "ignorePatterns": ["**/*.test.ts", "dist/**", "node_modules/**"], "boundaries": { "severity": "error", "preset": "feature-sliced" } }

А вот так это выглядит в интерфейсе:

Так выглядит дашборд
Так выглядит дашборд
Подсветка не используемого кода
Подсветка не используемого кода
Тут видно нарушение слоев импорта
Тут видно нарушение слоев импорта
Даже есть подсветка неиспользованных методов внутри классов
Даже есть подсветка неиспользованных методов внутри классов
Неиспользованные зависимости в package.json
Неиспользованные зависимости в package.json

Итог: мы получаем одну из лучших фишек экосистемы JetBrains, получив высокую скорость работы, возможность настроить правила для архитектуры (к примеру FSD) и удобный дашборд для мониторинга всего проекта.

Если было интересно, поддержи меня подпиской на ТГ канал:

Ссылки на ресурсы: