如何在AvalonEdit中设置语法高亮?

3

我正在尝试设置使用AvalonEdit的程序中的语法高亮显示。

我正在使用以下代码:

StreamResourceInfo sri = Application.GetResourceStream(new Uri("lua.xshd"));
        using (Stream s  = sri.Stream)
        {
            using (XmlTextReader reader = new XmlTextReader(s))
            {
                var gLua = HighlightingLoader.LoadXshd(reader);
                editor.SyntaxHighlighting = HighlightingLoader.Load(gLua, HighlightingManager.Instance);
                editor.Text = reader.ToString();
            }
        }

我也遇到了这个问题:

“System.dll”中发生了“System.UriFormatException”类型的第一次异常

我应该如何更改以使其正常工作?

2个回答

1

我使用

using (Stream s = File.OpenRead(@"C:\Users\JFM\Documents\latex3.xshd")) 
{
using (XmlTextReader reader = new XmlTextReader(s)) 
 {
   editor.SyntaxHighlighting = ICSharpCode.AvalonEdit.Highlighting.Xshd.HighlightingLoader.Load
       (reader, ICSharpCode.AvalonEdit.Highlighting.HighlightingManager.Instance);    
 }
}

0

这是因为您没有包含程序集名称。如果您将xshd作为嵌入式资源构建,则应该像这样:

    private void LoadHightLightRule()
    {
        using (Stream s = myAssembly.GetManifestResourceStream("Your_Assembly_Name.lua.xshd"))
        {
            using (XmlTextReader reader = new XmlTextReader(s))
            {
                Editor.SyntaxHighlighting = HighlightingLoader.Load(reader, HighlightingManager.Instance);
            }
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接