public Highlight GetHighlight(Document.Document document, int offset) { int searchOffset; if (Shared.TEP.BracketMatchingStyle == BracketMatchingStyle.After) { searchOffset = offset; } else { searchOffset = offset + 1; } char word = document.GetCharAt(Math.Max(0, Math.Min(document.TextLength - 1, searchOffset))); TextLocation endP = document.OffsetToPosition(searchOffset); if (word == OpenTag) { if (searchOffset < document.TextLength) { int bracketOffset = TextUtilities.SearchBracketForward(document, searchOffset + 1, OpenTag, ClosingTag); if (bracketOffset >= 0) { TextLocation p = document.OffsetToPosition(bracketOffset); return(new Highlight(p, endP)); } } } else if (word == ClosingTag) { if (searchOffset > 0) { int bracketOffset = TextUtilities.SearchBracketBackward(document, searchOffset - 1, OpenTag, ClosingTag); if (bracketOffset >= 0) { TextLocation p = document.OffsetToPosition(bracketOffset); return(new Highlight(p, endP)); } } } return(null); }