Example #1
0
        void FillTree(string search)
        {
            var isHaxe = InFile.haXe;

            if (InFile.Members.Count > 0)
            {
                FillNodes(tree.Nodes, InFile, InFile.Members, isHaxe, search);
            }
            foreach (var classModel in InFile.Classes)
            {
                var node = NodeFactory.CreateTreeNode(classModel);
                tree.Nodes.Add(node);
                FillNodes(node.Nodes, InFile, classModel.Members, isHaxe, classModel.Equals(InClass), search);
            }
            if (SelectedNode != null || tree.Nodes.Count == 0)
            {
                return;
            }
            if (search.Length == 0)
            {
                if (InClass.Equals(ClassModel.VoidClass))
                {
                    tree.SelectedNode = tree.TopNode;
                }
                else
                {
                    tree.SelectedNode = tree.Nodes.OfType <ClassNode>().FirstOrDefault(it => it.Model.Equals(InClass));
                }
            }
            else
            {
                var nodes = tree.Nodes.OfType <ClassNode>().ToList().FindAll(it =>
                {
                    var word  = it.Model.QualifiedName;
                    var score = PluginCore.Controls.CompletionList.SmartMatch(word, search, search.Length);
                    return(score > 0 && score < 6);
                });
                tree.Nodes.Clear();
                if (nodes.Count == 0)
                {
                    return;
                }
                tree.Nodes.AddRange(nodes.ToArray());
                tree.SelectedNode = tree.TopNode;
            }
        }