Как мне создать файл синтаксиса AvalonEdit (.xshd) и встроить его в мою сборку?

Я пытаюсь определить некоторые специальные правила выделения для AvalonEdit. Похоже, что для этого нет никакой документации - есть некоторая документация по формату файла , но ничего о том, как на самом деле загрузить и использовать определение после его создания.

" Вики-страница с выделением синтаксиса "(для старого WinForms TextEditor) документирует, как загрузить определения выделения из файла .xshd на диск, но я бы предпочел встроить его в качестве ресурса, как это делает AvalonEdit со своим встроенные определения.

Я просмотрел код в проекте ICSharpCode.AvalonEdit, который загружает его встроенные подсветки, но фактический код "загрузки из ресурса" выполняется в DefaultHighlightingManager.LoadHighlighting,

public static IHighlightingDefinition LoadHighlightingDefinition(
    string resourceName)
{
    var type = typeof(ResourceLoader);
    var fullName = type.Namespace + "." + resourceName;
    using (var stream = type.Assembly.GetManifestResourceStream(fullName))
    using (var reader = new XmlTextReader(stream))
        return HighlightingLoader.Load(reader, HighlightingManager.Instance);
}

Затем я могу просто вызвать ResourceLoader.LoadHighlightingDefinition ("Name.xshd") .

Для всех, кто следит за мной дома, в файле .xshd должно быть задано действие сборки для встроенного ресурса.

22
задан Community 23 May 2017 в 11:45
поделиться