// TAB public TextWord(IDocument document, LineSegment line, int offset, int length, HighlightColor color, bool hasDefaultColor) { Debug.Assert(document != null); Debug.Assert(line != null); Debug.Assert(color != null); this.document = document; this.line = line; Offset = offset; Length = length; this.color = color; HasDefaultColor = hasDefaultColor; }
public HighlightRuleSet(XmlElement el) { XmlNodeList nodes; 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 = bool.Parse(el.Attributes["ignorecase"].InnerText); } for (var i = 0; i < Delimiters.Length; ++i) { Delimiters[i] = false; } if (el["Delimiters"] != null) { var delimiterString = el["Delimiters"].InnerText; foreach (var ch in delimiterString) { Delimiters[ch] = true; } } // Spans = new LookupTable(!IgnoreCase); KeyWords = new LookupTable(!IgnoreCase); PrevMarkers = new LookupTable(!IgnoreCase); NextMarkers = new LookupTable(!IgnoreCase); nodes = el.GetElementsByTagName("KeyWords"); foreach (XmlElement el2 in nodes) { var color = new HighlightColor(el2); var 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)); } /* * Span span = new Span(el2); * Spans[span.Begin] = span;*/ nodes = el.GetElementsByTagName("MarkPrevious"); foreach (XmlElement el2 in nodes) { var prev = new PrevMarker(el2); PrevMarkers[prev.What] = prev; } nodes = el.GetElementsByTagName("MarkFollowing"); foreach (XmlElement el2 in nodes) { var next = new NextMarker(el2); NextMarkers[next.What] = next; } }