Поделиться через


Glyph control (VSPackage системы управления версиями)

Часть глубокой интеграции, доступной для VSPackages системы управления версиями, — возможность отображения собственных глифов для указания состояния элементов в системе управления версиями.

Уровни элемента управления глифами

Глиф состояния — это значок, указывающий текущее состояние элемента при отображении, например в Обозреватель решений или в представлении классов. VSPackage системы управления версиями может выполнять два уровня управления глифами. Он может ограничить выбор глифов предопределенным набором глифов, предоставляемых интегрированной интегрированной средую разработки Visual Studio, или определить настраиваемый набор глифов для отображения.

Набор глифов по умолчанию

Чтобы определить глифы состояния, связанные с элементом в Обозреватель решений, проект запрашивает глиф состояния из системы управления версиями с помощью элемента GetSccGlyphуправления версиями. VSPackage системы управления версиями может решить сохранить выбор глифов, ограниченных предопределенными глифами, предоставляемыми интегрированной интегрированной системой разработки. В этом случае VSPackage передает массив значений, представляющих перечисления глифов, определенных в vsshell.idl. Дополнительные сведения см. в разделе VsStateIcon. Это предопределенный набор глифов, заданных интегрированной интегрированной среды разработки, например блокировка для глифа проверка и проверка метку для глифа проверка выходного глифа.

Настраиваемый набор глифов

VSPackage системы управления версиями может использовать собственные глифы для уникального внешнего вида и чувствовать себя при установке. Когда активен новый VSPackage системы управления версиями, он должен начать использовать собственные глифы, даже если предыдущий vsPackage системы управления версиями по-прежнему загружен, но неактивен. В этом режиме VSPackage системы управления версиями по-прежнему может использовать существующие значки, чтобы поддерживать внешний вид, согласованный с Visual Studio, если он выбирает.

Служба SVsSccManager поддерживает интерфейс, IVsSccGlyphsкоторый пакет VSPackage может реализовать при необходимости и который будет запрашиваться интегрированной интегрированной среде разработки. Когда интегрированная среда разработки выполняет запрос, Visual Studio, в свою очередь, попытается получить этот интерфейс из зарегистрированного в настоящее время vsPackage системы управления версиями. Если интерфейс существует в зарегистрированном VSPackage, запрос интегрированной среды разработки для пользовательских глифов завершается успешно; в противном случае интегрированная среда разработки Visual Studio использует набор глифов по умолчанию.

Этот GetCustomGlyphList метод используется Visual Studio для получения списка изображений с различными состояниями системы управления версиями. VSPackage системы управления версиями возвращает IDE дескриптор списка изображений для пользовательских глифов. Интегрированная среда разработки создает копию списка изображений на этом этапе и использует ее позже, чтобы выбрать глифы для отображения. Если новый интерфейс не поддерживается или IVsSccGlyphs::GetCustomGlyphList метод возвращается E_NOTIMPL, интегрированная среда разработки получает свои глифы из списка глифов по умолчанию, предоставляемых Visual Studio.