UVectorFinder — Duplicate Vector Detection
UVectorFinder
Заголовок раздела «UVectorFinder»Поиск и управление геометрически идентичными векторами в Figma.
Версия: 1.0.0 · Лицензия: MIT · GitHub
Зачем этот плагин
Заголовок раздела «Зачем этот плагин»В больших дизайн-файлах одна иконка может существовать в десятках копий — немного растянутая, перевёрнутая, переименованная, без связи с компонентом. Это засоряет файл и создаёт проблемы при обновлении. UVectorFinder находит такие копии через анализ геометрии SVG-путей — независимо от позиции, масштаба, имени слоя или структуры.
Возможности
Заголовок раздела «Возможности»- Full scan — весь файл / страница / фрейм / секция
- Selection mode — найти дубли только среди выбранных элементов
- Tolerance control — exact / pixel / relaxed / loose (насколько похожи пути)
- Cross-page navigation — переход к найденным элементам на других страницах
- Persistent settings — настройки сохраняются между сессиями
Алгоритм (6 стадий)
Заголовок раздела «Алгоритм (6 стадий)»Collect → Extract → Parse → Normalize → Fingerprint → Cluster- Collect — обход дерева нод, сбор vector-нод
- Extract — извлечение SVG path geometry
- Parse — разбор path commands (M, L, C, Q, A, Z)
- Normalize — нормализация к единичному bounding box (position/scale инвариантность)
- Fingerprint — создание строкового хеша нормализованного пути
- Cluster — группировка по совпадающим fingerprint’ам
23 unit-теста покрывают parsing, normalization и fingerprinting.
Режимы поиска
Заголовок раздела «Режимы поиска»| Режим | Область |
|---|---|
| Selection | Только выделенные элементы |
| Frame/Section | Текущий выбранный фрейм |
| Current Page | Текущая страница |
| Entire File | Весь документ (может быть медленным на больших файлах) |
| Слой | Технология |
|---|---|
| Язык | TypeScript 5.3 |
| Бандлер | tsup |
| Тесты | Jest 29.7 (23 unit tests) |
| Figma API | @figma/plugin-typings |
Место в стеке
Заголовок раздела «Место в стеке»Используется при:
- Чистке старых файлов от накопленных копий иконок
- Аудите перед хендовером разработчику
- Объединении нескольких файлов в один
Связанные инструменты:
- [[design-lint|Design Lint]] — другой аудитор, проверяет стили и overrides