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))); }
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))); }
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); } } } }