Я пытаюсь определить некоторые специальные правила выделения для 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 должно быть задано действие сборки для встроенного ресурса.