示例#1
0
        protected override bool DoesCompletionMatchApplicabilityText(Completion completion, string filterText, CompletionMatchType matchType, bool caseSensitive)
        {
            if (base.DoesCompletionMatchApplicabilityText(completion, filterText, matchType, caseSensitive))
            {
                return(true);
            }

            object parentObject;

            completion.Properties.TryGetProperty("parentObject", out parentObject);
            IStepSuggestionGroup <Completion> parentObjectAsGroup = parentObject as IStepSuggestionGroup <Completion>;

            return
                (parentObjectAsGroup != null &&
                 parentObjectAsGroup.Suggestions
                 .Any(stepSuggestion => stepSuggestion.NativeSuggestionItem != null && DoesCompletionMatchApplicabilityText(stepSuggestion.NativeSuggestionItem, filterText, matchType, caseSensitive)));
        }
示例#2
0
        protected override bool DoesCompletionMatchApplicabilityText(Completion completion)
        {
            if (base.DoesCompletionMatchApplicabilityText(completion))
            {
                return(true);
            }

            object parentObject = null;

            completion.Properties.TryGetProperty <object>("parentObject", out parentObject);
            IStepSuggestionGroup <Completion> parentObjectAsGroup = parentObject as IStepSuggestionGroup <Completion>;

            return
                (parentObjectAsGroup != null &&
                 parentObjectAsGroup.Suggestions
                 .Any(stepSuggestion => stepSuggestion.NativeSuggestionItem != null && DoesCompletionMatchApplicabilityText(stepSuggestion.NativeSuggestionItem)));
        }
示例#3
0
        private IEnumerable <TNativeSuggestionItem> GetNativeSuggestionItems(IEnumerable <IStepSuggestion <TNativeSuggestionItem> > suggestions, string lastInsertionText = null)
        {
            foreach (var suggestion in suggestions)
            {
                var insertionText = nativeSuggestionItemFactory.GetInsertionText(suggestion.NativeSuggestionItem);
                if (insertionText == null || insertionText.Equals(lastInsertionText))
                {
                    continue;
                }

                yield return(suggestion.NativeSuggestionItem);

                lastInsertionText = insertionText;

                IStepSuggestionGroup <TNativeSuggestionItem> suggestionGroup = suggestion as IStepSuggestionGroup <TNativeSuggestionItem>;
                if (suggestionGroup != null)
                {
                    foreach (var nativeSuggestionItem in GetNativeSuggestionItems(suggestionGroup.Suggestions, lastInsertionText))
                    {
                        yield return(nativeSuggestionItem);
                    }
                }
            }
        }