AutocompleteMenuNS.AutocompleteMenu.GetFragment C# (CSharp) Method

GetFragment() private method

private GetFragment ( string searchPattern ) : Range
searchPattern string
return Range
        private Range GetFragment(string searchPattern)
        {
            var tb = TargetControlWrapper;

            if (tb.SelectionLength > 0) return new Range(tb);

            var text = tb.Text;
            var regex = new Regex(searchPattern);
            var result = new Range(tb);

            var startPos = tb.SelectionStart;
            //go forward
            var i = startPos;
            while (i >= 0 && i < text.Length)
            {
                if (!regex.IsMatch(text[i].ToString()))
                    break;
                i++;
            }
            result.End = i;

            //go backward
            i = startPos;
            while (i > 0 && (i - 1) < text.Length)
            {
                if (!regex.IsMatch(text[i - 1].ToString()))
                    break;
                i--;
            }
            result.Start = i;

            return result;
        }