Example #1
0
        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);
        }