IVOL CatalogerРасширение VS Code с разделом «Проекты» в левой панели. Подключите папку с проектами: дерево сохранит промежуточные группы и покажет найденные проекты, начиная с недавно изменённых. IVOL Cataloger — локальный каталог проектов без облачного сервиса. VS Code 1.85+; интерфейс на русском языке. Релизы и VSIX · Сообщить об ошибке · История изменений · MIT Запуск и установкаВ VS Code откройте Расширения, найдите IVOL Cataloger и нажмите Установить. Если поиск ещё не обновился, используйте точный запрос @id:ivol.ivol-project-catalog или прямую ссылку Marketplace. Карточка Open VSX предназначена для совместимых редакторов; доступность новых версий зависит от проверки площадки. После установки откройте «Проекты» слева → + → выберите папку, в которой хранятся ваши проекты. Дерево построится автоматически. Для разработки откройте этот проект и нажмите F5 / Fn+F5, конфигурация «Каталог проектов: запуск расширения». Компиляция и зависимости не нужны. Требуется VS Code 1.85 или новее. Для ручной установки без магазина: Расширения → … → Установить из VSIX…. Выберите пакет расширения. После обновления уже работающего расширения может потребоваться перезапуск окна. Панель автоматически открывается при первом запуске; последующие запуски не перехватывают фокус. Использование
Содержимое всех подключённых корней показывается сразу на верхнем уровне каталога. Лишних строк PO и других корней нет даже после добавления второй папки. Вложенные группы сохраняются. Для одинаковых названий полный путь виден при наведении. Подключайте папки-контейнеры проектов: сам корень намеренно не отображается. Названия и видимость (0.4.9)
Предпочтения сохраняются в глобальном состоянии расширения в профиле VS Code. Старая настройка предпочтений читается для совместимости. Обычное обновление не сбрасывает сохранённые данные. Последние проекты и активностьПанель содержит два постоянно открытых визуальных блока: «Последние активные проекты» и «Дерево проектов». Верхний показывает до 7 уникальных проектов без групп, включая проекты без истории открытий. Текущий проект окна закреплён первым; остальные сортируются по максимуму времени открытия, сохранения и изменения файлов. Лимит меняется через шестерёнку; история сохраняется после перезапуска. В списке остаются только найденные проекты из подключённых корней. В версии 0.4.7 строки остаются компактными, высотой 27 px: название, количество проектов у группы, метка «Активный» и дата расположены в одну строку. Длинное название сокращается многоточием, полный путь доступен при наведении. Дата показана как ДД.ММ.ГГ, полный год и время — в подсказке; отсутствие даты обозначается тире. Текущий проект выделен контрастным фоном, цветной полосой и меткой в обоих блоках независимо от фокуса. Каждый уровень дерева сдвинут на 16 px и связан направляющими; у конечных проектов сохраняется место под треугольник, чтобы названия не съезжали влево. При новом открытии панели раскрывается только цепочка предков активного проекта окна; все остальные ветки свёрнуты. Старые сохранённые раскрытия не восстанавливаются. Если данные ещё загружаются, панель ждёт появления активного пути; если после загрузки активного проекта нет, всё остаётся свёрнутым. Затем папки можно раскрывать и сворачивать вручную: фоновые обновления не меняют этот выбор. При реальной смене активного проекта ручные раскрытия сбрасываются и раскрывается только новый путь. В multi-root переход фокуса на панель не меняет активную рабочую папку на первую; локальные пути приводятся к реальному пути на диске. Клик по чужому проекту не делает его активным в исходном окне. Для доступности используются вложенные списки и кнопки раскрытия с состоянием: Tab/Shift+Tab перемещают фокус, Enter/Space активируют кнопку. Это disclosure-интерфейс, а не ARIA treeview с обязательной навигацией стрелками. Ориентиры: VS Code Views UX, WAI-ARIA Tree View, WAI-ARIA Disclosure. Открытие через каталог и сохранение файла сразу поднимают проект и его группы на своих уровнях. При запуске окна учитываются открытые рабочие папки и активный файл. Для вложенных проектов файл относится к ближайшему проекту. Активность из другого окна подтягивается примерно за 2 секунды; в нём также должна быть загружена новая версия расширения. Несохранённый набор текста сам по себе не меняет порядок. История хранится локально в служебном хранилище расширения: у каждого запуска окна собственный атомарно записываемый файл. Окна объединяют максимальные даты без перезаписи чужих событий. Автоматическая очистка старых файлов истории пока не реализована. Корни и режим открытия сохраняются. Панель использует собственные кнопки: общая настройка Workbench › List: Open Mode не меняет открытие одним нажатием. Какие папки считаются проектамиС версии 0.4.8 по умолчанию достаточно признаков IDE/Git, файлов сборки или исходников непосредственно в папке. Учитываются настройки VS Code, JetBrains, Fleet, Zed, Eclipse, проекты Sublime/.NET/Xcode; package.json, composer.json, Gradle (в том числе settings.gradle.kts), Cargo, Go, Python и другие конфигурации; исходники JavaScript/TypeScript, PHP, Python, Java/Kotlin, Dart, Swift, Go, Rust, C/C++, C#, Ruby, Vue, Svelte и HTML. Также учитывается вложенная папка android, если в ней есть файл settings.gradle/build.gradle (включая .kts) и папка app. В таком случае проектом становится родительская папка: например, PLANSHET, а не её android/app. GAME определяется по исходникам в корне. Произвольная непустая папка, только изображения/документы или пустая папка проектом не считаются; группы продолжают содержать найденные проекты. Detect Build Files включён по умолчанию. Его отключение возвращает строгий режим IDE/Git. Если ранее явно установили значение false, оно сохраняется — включите настройку для нового распознавания. Расширенный режим может включать скачанные шаблоны и библиотеки, а не только ваши рабочие проекты. Подключённый корень всегда считается контейнером. При обнаружении проекта поиск новых проектов внутри него прекращается: модули, пакеты и примеры не раздувают счётчик. Вложенные исходники по-прежнему учитываются в дате. Для отдельного просмотра вложенных проектов можно подключить их родительскую папку дополнительным корнем. Распознавание эвристическое: даже скачанный шаблон с настройками IDE может попасть в список. Ненужные папки исключайте по имени. Никакого чтения содержимого файлов нет. Сортировка и обновлениеПорядок учитывает максимум из времени открытия/сохранения проекта и времени изменения его файлов, включая вложенные каталоги. Группы поднимаются по самой свежей активности внутри. На каждом уровне свежие элементы стоят выше, при одинаковой дате — по имени; текущий проект закреплён первым в верхнем списке. Рядом показана именно дата изменения файлов, а не открытия проекта; полное время видно при наведении на дату. Будущие даты файлов из-за неверных часов могут оказаться выше текущей активности. Файловая часть даты — время существующих файлов, не история удалений: удаление последнего свежего файла может уменьшить её. Записанное время открытия/сохранения при этом остаётся. Проект без файлов и без истории активности показывается без даты. Даты настроек IDE, зависимостей, сборок и исключённых файлов не учитываются сканером. Обход асинхронный, с максимум 32 параллельными запросами метаданных. Последнее дерево хранится в памяти; во время следующего сканирования оно остаётся доступным. При видимой панели повторный обход выполняется примерно раз в минуту. При скрытой панели периодический обход не запускается. Начальный и ручной обход выполняются независимо от видимости. Состояния загрузки (0.4.6)При открытии другого проекта или нового окна подключённая папка не считается пустой до окончания сканирования: панель показывает «Папка подключена. Загружаем проекты…» с вращающимся индикатором. Для нескольких корней — «Папки подключены». Без корней предлагается подключить папку. Только после успешного поиска без результатов появляется «В подключённой папке проекты не найдены» (или «В подключённых папках…»). При повторном сканировании дерево и последние проекты остаются доступны, над ними появляется компактное «Обновляем…». Ошибки доступа и незавершённый из-за лимита поиск показываются отдельно, а не как отсутствие проектов; подробная диагностика остаётся в журнале. Статус доступен скринридерам, списки отмечаются занятыми во время загрузки; при системном предпочтении уменьшенного движения индикатор не вращается. Исключения и настройкиВ настройках VS Code найдите Каталог проектов:
Содержимое файлов никогда не читается сканером: используются имена и время изменения. Исключённые каталоги не обходятся. Символические ссылки пропускаются, чтобы не уходить за пределы дерева или по кругу. Файлы окружения, ключей/сертификатов, журналы, пакеты расширения и файл учёта задачи не влияют на сортировку. Каталоги IDE распознаются как маркеры, но внутрь них обход не заходит. Подключённый корень сохраняется в форме настроек даже если пуст, исключён или недоступен, чтобы его можно было отключить. Подробная диагностика сканирования выводится в журнал «Каталог проектов»; в панели показываются только загрузка и понятные предупреждения, без технических счётчиков. Поддерживаются только локальные папки. Настройки корней из другого уже открытого окна могут потребовать его перезапуска. СборкаДействие check в NPM Scripts проверяет синтаксис пяти модулей расширения и клиентского скрипта панели. package загружает упаковщик из npm; рекомендуется Node.js 22 или новее. История редактора и файл задач исключены из пакета. Ограничения переноса и приватность
Разработка и публикацияИнструкции для сопровождающего: RELEASING.md. Для сообщений об ошибках укажите версию VS Code и расширения, ОС, шаги воспроизведения и ожидаемое поведение. Не прикладывайте секреты и личные пути без необходимости. |