Instruction file imported from yellow-hammer/vscode-1c-platform-tools (
.cursor/rules/metadata-tree-visual-style.mdc). Copyright stays with the author.
Визуальный стиль дерева метаданных
Базовый эталон
- Эталонная иерархия:
Конфигурация -> Общее -> Подсистемы -> Подсистема1. - Корневой узел
Конфигурациядолжен иметь иконку в стиле 1С, без genericThemeIcon. - Узлы категорий (
Общее,Подсистемы) должны иметь стабильные категорийные иконки без случайных подмен. - Листовой узел
Подсистема1должен иметь объектную иконку подсистемы, не иконку папки. - Визуальный акцент — на тексте и иконке; без лишних
description,badge, суффиксов. - Дерево должно оставаться компактным и визуально чистым.
Обязательные требования к реализации в коде
- Для ключевых узлов использовать SVG-иконки через
metadataSvgIcon. - Иконки листьев выбирать через
metadataObjectTypeIcon(единая объектная семантика). ThemeIconне использовать как основной стиль для метаданных 1С.- Не менять порядок базовых групп метаданных ради визуальных экспериментов.
- Единый источник истины для иконок: только маппинг
objectType -> svg. - Для группы/подгруппы сначала определяется репрезентативный
objectType(из её листьев или изid -> objectType), затем SVG берется из того жеobjectType -> svg. - Прямой маппинг
id -> svgне использовать (кроме технических узлов без объектного типа, например корняcommon). - Перед любыми решениями по
objectType(раскрытие, иконка, резолв XML-пути, проверка поддерживаемости вmd-sparrow) обязательно прогонять единый слой нормализации типа (alias -> canonical). - Не добавлять точечные алиасы в несколько мест сразу; добавлять alias только в один централизованный маппинг нормализации.
Матрица раскрытия узлов
- Подсистемы без вложенных подсистем показывать без значка раскрытия.
- Не раскрывать:
CommonModule,SessionParameter,Role,CommonAttribute,EventSubscription,ScheduledJob,Bot,FunctionalOption,FunctionalOptionsParameter,DefinedType,CommonCommand,CommandGroup,CommonForm,CommonPicture,XDTOPackage,WebSocketClient,StyleItem,Style,Language,Constant,DocumentNumerator,Sequence. ExchangePlanраскрывать на:Реквизиты,Табличные части,Формы,Команды,Макеты.FilterCriterionраскрывать на:Формы,Команды.SettingsStorageраскрывать на:Формы,Макеты.WebServiceраскрывать на:Операции.HTTPServiceраскрывать на:Шаблоны URL.IntegrationServiceраскрывать на:Каналы.Enumраскрывать на:Значения.- Для
EnumсекцияЗначенияне может быть пустой в типовых данных. DocumentJournalраскрывать на:Графы,Формы,Команды,Макеты.Catalog,Document,Report,DataProcessor,ChartOfCharacteristicTypes,ChartOfCalculationTypes,BusinessProcessраскрывать на:Реквизиты,Табличные части,Формы,Команды,Макеты.ChartOfAccountsраскрывать на:Реквизиты,Признаки учета,Признаки учета субконто,Табличные части,Формы,Команды,Макеты.InformationRegister,AccumulationRegister,AccountingRegisterраскрывать на:Измерения,Ресурсы,Реквизиты,Формы,Команды,Макеты.CalculationRegisterраскрывать на:Измерения,Ресурсы,Реквизиты,Перерасчеты,Формы,Команды,Макеты.Taskраскрывать на:Реквизиты адресации,Реквизиты,Табличные части,Формы,Команды,Макеты.ExternalDataSourceраскрывать на:Таблицы,Кубы,Функции.ExternalReport,ExternalDataProcessorраскрывать на:Реквизиты,Табличные части,Формы,Макеты(без секцииКоманды).- Реализацию раскрытия выполнять только через
md-sparrow(cf-md-object-structure-getи связанные команды). - В
vscode-1c-platform-toolsне выполнять ручное чтение, парсинг и редактирование XML (включая дерево метаданных): все XML-операции делать черезmd-sparrow. - Если
md-sparrowвременно не отдает часть структуры, допустимо показать секции по матрице пустыми, но без прямого XML fallback в расширении.
Обязательные требования к SVG-набору
- Все иконки набора должны быть монохромными с темовой заливкой:
resources/metadata-tree-icons/*.svg->fill="#5F6368";resources/metadata-tree-icons/dark/*.svg->fill="#D3D6DB".
- Для tree view использовать единый отображаемый размер:
width="16"иheight="16". - Запрещены встроенные CSS-стили (
<style>, классы видаicon-vs-*) и произвольная многоцветность. - Если используется пара
light/dark, геометрия иконки должна оставаться идентичной; тема меняет только цвет. - При добавлении новой иконки обязательно обновлять обе папки (
resources/metadata-tree-iconsиresources/metadata-tree-icons/dark) или осознанно использовать fallback наlight.
Формат фиксации нового эталона
- Для каждого нового эталонного скрина добавлять отдельный блок
### Эталон N. - В каждом блоке фиксировать только:
- структура дерева;
- визуальные акценты (иконки, выделение, плотность);
- отличие от текущего дерева расширения;
- список правок в коде/иконках (не более 3 пунктов).
- Формулировки должны быть техническими и нормативными, без диалогового стиля.