public void FilterWords() { filteredItems.Clear(); categories.Clear(); var matcher = CompletionMatcher.CreateCompletionMatcher(CompletionString); for (int newSelection = 0; newSelection < win.DataProvider.ItemCount; newSelection++) { if (string.IsNullOrEmpty(CompletionString) || matcher.IsMatch(win.DataProvider.GetText(newSelection))) { CompletionCategory completionCategory = win.DataProvider.GetCompletionCategory(newSelection); GetCategory(completionCategory).Items.Add(filteredItems.Count); filteredItems.Add(newSelection); } } categories.Sort(delegate(Category left, Category right) { return(right.CompletionCategory != null ? right.CompletionCategory.CompareTo(left.CompletionCategory) : -1); }); SelectFirstItemInCategory(); CalcVisibleRows(); UpdatePage(); OnWordsFiltered(EventArgs.Empty); }
static Category GetCategory(List <Category> categories, CompletionCategory completionCategory) { foreach (var cat in categories) { if (cat.CompletionCategory == completionCategory) { return(cat); } } var result = new Category(); result.CompletionCategory = completionCategory; if (completionCategory == null) { categories.Add(result); } else { categories.Insert(0, result); } return(result); }
Category GetCategory(CompletionCategory completionCategory) { foreach (Category cat in categories) { if (cat.CompletionCategory == completionCategory) { return(cat); } } Category result = new Category(); result.CompletionCategory = completionCategory; if (completionCategory == null) { categories.Add(result); } else { categories.Insert(0, result); } return(result); }
public override int CompareTo(MonoDevelop.Ide.CodeCompletion.CompletionCategory other) { return(string.Compare(DisplayText, other.DisplayText, StringComparison.InvariantCulture)); }