IVOL CatalogerРасширение VS Code с разделом «Проекты» в левой панели. Подключите папку с проектами: дерево сохранит промежуточные группы и покажет найденные проекты, начиная с недавно изменённых. IVOL Cataloger — локальный каталог проектов без облачного сервиса. VS Code 1.85+; интерфейс на русском языке. Релизы и VSIX · Сообщить об ошибке · История изменений · MIT Что нового0.7.32 — 2026-11-10
0.7.31 — 2026-11-10
0.7.30 — 2026-11-10
0.7.29 — 2026-11-09
Полная история — в CHANGELOG.md. Запуск и установкаВ VS Code откройте Расширения, найдите IVOL Cataloger и нажмите Установить. Если поиск ещё не обновился, используйте точный запрос @id:ivol.ivol-project-catalog или прямую ссылку Marketplace. Карточка Open VSX предназначена для совместимых редакторов; доступность новых версий зависит от проверки площадки. После установки откройте «Проекты» слева → + → выберите папку, в которой хранятся ваши проекты. Дерево построится автоматически. Для разработки основной панели откройте этот проект и нажмите F5 / Fn+F5, конфигурация «Каталог проектов: запуск расширения». Зависимости основного расширения устанавливать не нужно. Нативный помощник строки меню и полный пакет собираются на macOS с Apple Command Line Tools: сборка помощника описана в скрипте, при упаковке запускается автоматически. В готовом VSIX помощник уже скомпилирован для Apple Silicon и Intel; пользователю компилятор не нужен. Требуется VS Code 1.85 или новее. Для ручной установки без магазина: Расширения → … → Установить из VSIX…. Выберите пакет расширения. После обновления уже работающего расширения может потребоваться перезапуск окна. Панель автоматически открывается при первом запуске; последующие запуски не перехватывают фокус. Проекты в строке меню macOS (0.7.0)Проекты → ⚙ → включить «Проекты в строке меню macOS». С версии 0.7.1 переключатель сохраняется и применяется сразу, отдельное «Сохранить настройки» не требуется. Надпись «Включаю…» означает сохранение; «Включено» — подтверждённую настройку, запуск помощника занимает ещё несколько секунд. После обновления вручную перезапустите все нужные окна VS Code: только окна новой версии передают данные системной панели. По умолчанию функция выключена. Поддерживаются macOS 14+, Apple Silicon и Intel.
Плавающая панель для Windows — только возможная идея на будущее. Разработка отложена без сроков и обязательств: сейчас нет среды для проверки и практической необходимости. На Windows основная панель каталога продолжает работать без системного помощника. ИспользованиеОбщий индекс (0.6.14): один постоянный каталог для всех локальных окон одного редактора/профиля. После обновления первая загрузка один раз сканирует проекты; следующие запуски читают готовый индекс без обхода папок и без фоновой переиндексации. Одновременные первые запуски ждут один общий результат. Изменения индекса подхватываются другими окнами примерно за 2 секунды. Создание, перенос, удаление, переименование в каталоге, избранное и скрытие обновляют индекс адресно. Скрытая папка и все потомки исключаются из поиска проектов и расчёта дат, даже при полной переиндексации. Возврат скрытого, включение пропущенных папок и возврат автоопределения сканируют только соответствующую ветку; подключение корня — только новый корень. Созданное или удалённое вне каталога отражается после ↻ Переиндексировать все проекты. Даты файлов берутся из индекса, история работы и отметки окон обновляются отдельно. Индекс записывается атомарно, операции окон сериализуются общей блокировкой. Правила обхода сохраняются вместе с индексом; изменения настроек применяются при ручной переиндексации. При повреждении индекса показывается ошибка и предлагается ↻. Перезапустите все окна после установки, не меняйте каталог одновременно из старой и новой версий. Для диагностики: Вид → Вывод → «Каталог проектов». Открытые проекты (0.6.16): под поиском расположен отдельный раздел со всеми открытыми проектами каталога — без лимита количества и независимо от давности активности, включая избранные. Текущий проект первый, остальные отсортированы по названию. Поиск фильтрует и этот раздел. Ниже «Последние активные проекты» показывает только закрытые проекты с прежним лимитом и сортировкой активности; избранные по-прежнему не дублируются в последних. После закрытия последнего окна проект становится доступен в последних, если проходит лимит активности и не находится в избранном. Избранное и дерево сохраняют прежнее поведение. Открытые окна: в дереве, избранном и открытых проектах зелёная отметка «● Открыт» означает другое открытое окно, выделение «● Текущее окно» — проект этого окна. Клик по открытому проекту переводит в существующее окно, независимо от переключателя «Новое окно»; клик по текущему не создаёт дубликат. Закрытые проекты открываются как раньше. Состояние синхронизируется примерно раз в 2 секунды без сканирования дерева; после аварийного завершения устаревшая отметка исчезает не позднее чем через 30 секунд при работающем таймере. После обновления перезапустите вручную все окна, которые нужно видеть в каталоге: они должны загрузить новую версию расширения. Учёт предназначен для локальных окон одного редактора/профиля. Для сохранённой многокорневой рабочей области открывается её файл, а не отдельное окно папки. Несохранённую рабочую область сначала нужно сохранить — каталог покажет уведомление вместо создания дубликата. SSH/контейнеры и переключение между разными редакторами не поддерживаются. Защита от случайных нажатий (0.6.9): звёздочка избранного видна только в действиях строки при наведении мыши или клавиатурном фокусе, а не постоянно. Перед скрытием кнопкой или через контекстное меню появится вопрос «Точно скрыть папку?» с названием и полным путём. Нажмите «Скрыть» для подтверждения; отмена ничего не меняет. Избранное (без лимита с 0.6.15): нажмите ☆ у проекта в дереве или недавних — он появится в блоке «⭐ Избранное» в самом верху панели, выше управления и поиска. ★ убирает проект из избранного. Количество проектов не ограничено, порядок соответствует добавлению. Проекты остаются в дереве, выбор сохраняется между перезапусками. Избранное также фильтруется поиском, а открытие учитывает переключатель «Новое окно». Перенос через каталог сохраняет избранное на новом пути. Скрытые, удалённые и отключённые проекты не показываются, но их отметки сохраняются для восстановления и не мешают добавлять новые проекты. Поиск сверху панели (0.6.7): вводите часть названия папки или проекта — дерево и последние активные фильтруются сразу, без учёта регистра. Родительские папки остаются для ориентации, ветки с совпадениями раскрываются автоматически. Поиск работает по отображаемым названиям только среди доступных элементов каталога: скрытые и исключённые папки не возвращаются, содержимое файлов не просматривается. Крестик или Escape в поле очищает поиск и возвращает прежние раскрытия дерева. Если совпадений нет, появляется сообщение «Папки и проекты не найдены». Правый клик по папке в дереве (0.6.6):
Обновление каталога: ↻ заново строит общий индекс для всех окон. Само открытие окна или панели не запускает обход при наличии индекса. Во время первоначальной индексации и ручной перестройки окно-инициатор показывает индикатор загрузки; другие окна могут пользоваться предыдущим индексом до публикации нового. Сделать папку единым проектом (0.7.18): наведите мышь на папку в дереве и нажмите ◎ → «Сделать её проектом?» → «Да». Кружочек доступен и при наличии вложенных проектов, и у автоматически распознанного проекта. То же действие есть в меню + строки и по правому клику → «Сделать проектом…». Выбранная папка становится единственным проектом: все вложенные перестают показываться отдельно, в том числе после переиндексации. Например, назначьте IVOLBar, чтобы Sources перестала быть отдельным проектом. Файлы и папки на диске не изменяются. После назначения кружочек исчезает, счётчики и списки обновляются. Действие доступно и с клавиатуры. Корни-контейнеры назначать проектами нельзя. Явные проекты (0.6.3)
Содержимое всех подключённых корней показывается сразу на верхнем уровне каталога. Лишних строк PO и других корней нет даже после добавления второй папки. Вложенные группы сохраняются. Для одинаковых названий полный путь виден при наведении. Подключайте папки-контейнеры проектов: сам корень намеренно не отображается. Названия и видимость (0.4.9)
Предпочтения сохраняются в глобальном состоянии расширения в профиле VS Code. Старая настройка предпочтений читается для совместимости. Обычное обновление не сбрасывает сохранённые данные. Последние проекты и активностьПанель содержит три постоянно открытых визуальных блока: «Избранное», «Последние активные проекты» и «Дерево проектов». Последние активные показывают до 7 уникальных проектов без групп, включая проекты без истории открытий. С версии 0.6.10 избранные исключаются из последних до применения лимита: освободившиеся места занимают следующие проекты по активности. Текущий проект окна закреплён первым в последних, только если он не в избранном; остальные сортируются по максимуму времени открытия, сохранения и изменения файлов. Добавление и удаление избранного сразу обновляет список, не стирая историю. Лимит меняется через шестерёнку; история сохраняется после перезапуска. В списке остаются только найденные проекты из подключённых корней. В версии 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 параллельными запросами метаданных. Последнее дерево хранится в памяти; при повторном сканировании остаётся видимым, но временно недоступно для действий. Начальный и ручной обход выполняются независимо от видимости. Периодического обхода больше нет, старое значение интервала не используется. Изменения файлов и папок вне каталога подхватываются при следующем сканировании; история открытий и сохранений синхронизируется отдельно, без обхода проектов. Состояния загрузкиПри открытии другого проекта или нового окна подключённая папка не считается пустой до окончания сканирования: панель показывает «Папка подключена. Загружаем проекты…» с вращающимся индикатором. Для нескольких корней — «Папки подключены». Без корней предлагается подключить папку. Только после успешного поиска без результатов появляется «В подключённой папке проекты не найдены» (или «В подключённых папках…»). При повторном сканировании дерево и последние проекты остаются видимыми под блокирующей плашкой «Обновление каталога…». Ошибки доступа и незавершённый из-за лимита поиск показываются отдельно, а не как отсутствие проектов; подробная диагностика остаётся в журнале. Статус доступен скринридерам, списки отмечаются занятыми во время загрузки; при системном предпочтении уменьшенного движения индикатор не вращается. Исключения и настройкиВ настройках VS Code найдите Каталог проектов:
Изменение настроек не запускает сканирование: параметры обхода применяются при следующем нажатии ↻ или запуске окна. Лимит последних проектов меняется сразу, без обхода диска. Содержимое файлов никогда не читается сканером: используются имена и время изменения. Исключённые каталоги не обходятся. Символические ссылки пропускаются, чтобы не уходить за пределы дерева или по кругу. Файлы окружения, ключей/сертификатов, журналы, пакеты расширения и файл учёта задачи не влияют на сортировку. Каталоги IDE распознаются как маркеры, но внутрь них обход не заходит. Подключённый корень сохраняется в форме настроек даже если пуст, исключён или недоступен, чтобы его можно было отключить. Подробная диагностика сканирования выводится в журнал «Каталог проектов»; в панели показываются только загрузка и понятные предупреждения, без технических счётчиков. Поддерживаются только локальные папки. Настройки корней из другого уже открытого окна могут потребовать его перезапуска. СборкаДействие check в NPM Scripts проверяет синтаксис пяти модулей расширения и клиентского скрипта панели. package загружает упаковщик из npm; рекомендуется Node.js 22 или новее. История редактора и файл задач исключены из пакета. Ограничения переноса и приватность
Разработка и публикацияИнструкции для сопровождающего: RELEASING.md. Для сообщений об ошибках укажите версию VS Code и расширения, ОС, шаги воспроизведения и ожидаемое поведение. Не прикладывайте секреты и личные пути без необходимости. |