/// <summary> /// Initializes a new instance of the <see cref="HighlightRuleSet"/> class. /// </summary> /// <param name="el">The XML element that describes the rule set.</param> public HighlightRuleSet(XmlElement el) { if (el.Attributes["name"] != null) { Name = el.Attributes["name"].InnerText; } if (el.HasAttribute("escapecharacter")) { escapeCharacter = el.GetAttribute("escapecharacter")[0]; } if (el.Attributes["reference"] != null) { reference = el.Attributes["reference"].InnerText; } if (el.Attributes["ignorecase"] != null) { ignoreCase = Boolean.Parse(el.Attributes["ignorecase"].InnerText); } if (el.Attributes["highlightDigits"] != null) { highlightDigits = Boolean.Parse(el.Attributes["highlightDigits"].InnerText); } for (int i = 0; i < Delimiters.Length; ++i) { delimiters[i] = false; } if (el["Delimiters"] != null) { string delimiterString = el["Delimiters"].InnerText; foreach (char ch in delimiterString) { delimiters[ch] = true; } } keyWords = new LookupTable(!IgnoreCase); prevMarkers = new LookupTable(!IgnoreCase); nextMarkers = new LookupTable(!IgnoreCase); XmlNodeList nodes = el.GetElementsByTagName("KeyWords"); foreach (XmlElement el2 in nodes) { HighlightColor color = new HighlightColor(el2); XmlNodeList keys = el2.GetElementsByTagName("Key"); foreach (XmlElement node in keys) { keyWords[node.Attributes["word"].InnerText] = color; } } nodes = el.GetElementsByTagName("Span"); foreach (XmlElement el2 in nodes) { Spans.Add(new Span(el2)); } nodes = el.GetElementsByTagName("MarkPrevious"); foreach (XmlElement el2 in nodes) { PrevMarker prev = new PrevMarker(el2); prevMarkers[prev.What] = prev; } nodes = el.GetElementsByTagName("MarkFollowing"); foreach (XmlElement el2 in nodes) { NextMarker next = new NextMarker(el2); nextMarkers[next.What] = next; } }
/// <summary> /// Initializes a new instance of the <see cref="HighlightRuleSet"/> class. /// </summary> /// <param name="el">The XML element that describes the rule set.</param> public HighlightRuleSet(XmlElement el) { if (el.Attributes["name"] != null) Name = el.Attributes["name"].InnerText; if (el.HasAttribute("escapecharacter")) escapeCharacter = el.GetAttribute("escapecharacter")[0]; if (el.Attributes["reference"] != null) reference = el.Attributes["reference"].InnerText; if (el.Attributes["ignorecase"] != null) ignoreCase = Boolean.Parse(el.Attributes["ignorecase"].InnerText); if (el.Attributes["highlightDigits"] != null) highlightDigits = Boolean.Parse(el.Attributes["highlightDigits"].InnerText); for (int i = 0; i < Delimiters.Length; ++i) delimiters[i] = false; if (el["Delimiters"] != null) { string delimiterString = el["Delimiters"].InnerText; foreach (char ch in delimiterString) delimiters[ch] = true; } keyWords = new LookupTable(!IgnoreCase); prevMarkers = new LookupTable(!IgnoreCase); nextMarkers = new LookupTable(!IgnoreCase); XmlNodeList nodes = el.GetElementsByTagName("KeyWords"); foreach (XmlElement el2 in nodes) { HighlightColor color = new HighlightColor(el2); XmlNodeList keys = el2.GetElementsByTagName("Key"); foreach (XmlElement node in keys) { keyWords[node.Attributes["word"].InnerText] = color; } } nodes = el.GetElementsByTagName("Span"); foreach (XmlElement el2 in nodes) Spans.Add(new Span(el2)); nodes = el.GetElementsByTagName("MarkPrevious"); foreach (XmlElement el2 in nodes) { PrevMarker prev = new PrevMarker(el2); prevMarkers[prev.What] = prev; } nodes = el.GetElementsByTagName("MarkFollowing"); foreach (XmlElement el2 in nodes) { NextMarker next = new NextMarker(el2); nextMarkers[next.What] = next; } }