示例#1
0
        private T Find(string text, int position, CanMatch canMatch, out int length)
        {
            if (position < text.Length)
            {
                Trie <T> node = GetChildNode(text[position], false);
                if (node != null)
                {
                    T childUrl = node.Find(text, position + 1, canMatch, out length);
                    if (childUrl != null)
                    {
                        length++;
                        return(childUrl);
                    }
                }
            }

            if (_value != null && (canMatch == null || canMatch(text, position)))
            {
                length = 0;
                return(_value);
            }

            length = -1;
            return(null);
        }
示例#2
0
        public AutoreplaceManager()
        {
            canMatch = (text, charactersMatched) => (charactersMatched >= text.Length ||
                                                     !char.IsLetterOrDigit(text[charactersMatched]));

            SetAutoCorrectFile(null);
            ReloadPhraseSettings();
        }
        public AutoreplaceManager()
        {
            canMatch = (text, charactersMatched) => (charactersMatched >= text.Length ||
                                                           !char.IsLetterOrDigit(text[charactersMatched]));

            SetAutoCorrectFile(null);
            ReloadPhraseSettings();
        }
 public AutoReplaceFinder(CanMatch canMatch)
 {
     _canMatch = canMatch;
 }
示例#5
0
 public T Find(string text, CanMatch canMatch, out int length)
 {
     return(Find(text, 0, canMatch, out length));
 }
 public AutoReplaceFinder(CanMatch canMatch)
 {
     _canMatch = canMatch;
 }