В расширение Visual Studio, которое я построил, мне нужно выделить вызовы методов в редакторе Visual Studio. Например:Экспорт пользовательских EditorFormatDefinition во время выполнения
Я хотел бы использовать HSV цвета, чтобы разделить спектр цвета в соответствии с количеством уникальных вызовов.
я могу добиться выделения цветом, если я экспортировать каждый цвет в качестве своего собственного EditorFormatDefinition:
[Export(typeof(EditorFormatDefinition))]
[ClassificationType(ClassificationTypeNames = "red-background")]
[Name("red-background")]
[UserVisible(true)]
[Order(After = Priority.High)]
public sealed class RedBackground : ClassificationFormatDefinition
{
public RedBackground()
{
DisplayName = "red-background";
BackgroundColor = Colors.Red;
}
}
Однако это требует от меня, чтобы вручную настроить все цвета, которые я хотел бы использовать загодя. Есть ли способ экспортировать EditorFormatDefinitions
во время выполнения?
Некоторые реестры, такие как IContentTypeRegistryService и IClassificationTypeRegistryService
, позволяют создавать новые типы и классификации контента во время выполнения. Существует ли аналогичный API для EditorFormatDefinitions
.
В качестве альтернативы, можно ли динамически экспортировать MEF EditorFormatDefinition
в Visual Studio?
Возможно ли изменить порядок во время выполнения? Я имею в виду функциональность, которую предоставляет OrderAttribute. – TDenis
Я нашел эту вторую перегрузку, которая позволяет установить приоритет: IClassificationFormatMap.AddExplicitTextProperties (IClassificationType, TextFormattingRunProperties, Тип классификации) – cyanbeam