AutocompleteMenuNS.AutocompleteMenu.BuildAutocompleteList C# (CSharp) Method

BuildAutocompleteList() private method

private BuildAutocompleteList ( bool forced ) : void
forced bool
return void
        private void BuildAutocompleteList(bool forced)
        {
            var visibleItems = new List<AutocompleteItem>();

            var foundSelected = false;
            var selectedIndex = -1;
            //get fragment around caret
            var fragment = GetFragment(SearchPattern);
            var text = fragment.Text;
            //
            if (sourceItems != null)
                if (forced || (text.Length >= MinFragmentLength /* && tb.Selection.Start == tb.Selection.End*/))
                {
                    Fragment = fragment;
                    //build popup menu
                    foreach (var item in sourceItems)
                    {
                        item.Parent = this;
                        var res = item.Compare(text);
                        if (res != CompareResult.Hidden)
                            visibleItems.Add(item);
                        if (res == CompareResult.VisibleAndSelected && !foundSelected)
                        {
                            foundSelected = true;
                            selectedIndex = visibleItems.Count - 1;
                        }
                    }
                }

            VisibleItems = visibleItems;

            SelectedItemIndex = foundSelected ? selectedIndex : 0;

            Host.CalcSize();
        }