简体   繁体   English

如何在AvalonEdit中设置语法突出显示?

[英]How to Set Syntax Highlighting in AvalonEdit?

I'm trying to set the Syntax Highlighting in my program I'm making that uses AvalonEdit 我正在尝试在我正在制作的程序中使用AvalonEdit设置语法高亮显示

This is the code that I'm using: 这是我正在使用的代码:

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();
            }
        }

I'm also getting 我也来了

A first chance exception of type 'System.UriFormatException' occurred in System.dll System.dll中出现'System.UriFormatException'类型的第一次机会异常

How should I change this to make it work? 我应该如何更改它以使其工作?

I use 我用

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);    
 }
}

It is because you didn't include your assembly name. 这是因为您没有包含您的程序集名称。 So it should be something like this if you build your xshd as embedded resource. 所以如果你将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);
            }
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM