示例#1
0
        /// <summary>
        /// Copied, because was originally internal.
        /// </summary>
        internal bool IsTextMatch(
            TextEditViewInfo viewInfo,
            out int containsIndex,
            out int matchedLength)
        {
            containsIndex = 0;
            var text    = viewInfo.DisplayText.ToLower();
            var matched = viewInfo.MatchedString.ToLower();

            matchedLength = matched.Length;

            if (text == matched)
            {
                return(true);
            }
            if (BaseEdit.StringStartsWidth(text, matched))
            {
                return(true);
            }

            if (viewInfo.MatchedStringUseContains)
            {
                containsIndex = text.IndexOf(matched);
                if (containsIndex > -1)
                {
                    return(true);
                }
            }

            if (viewInfo.MatchedStringAllowPartial)
            {
                for (; matchedLength > 0; matchedLength--)
                {
                    matched = matched.Substring(0, matchedLength);
                    if (BaseEdit.StringStartsWidth(text, matched))
                    {
                        return(true);
                    }
                    if (viewInfo.MatchedStringUseContains)
                    {
                        containsIndex = text.IndexOf(matched);
                        if (containsIndex > -1)
                        {
                            return(true);
                        }
                    }
                }
            }

            containsIndex = -1;
            return(false);
        }