Пример #1
0
 internal SymbolNode(SymbolNode node)
 {
     this.symbolText   = node.symbolText;
     this.symbolPrefix = node.symbolPrefix;
     this.fName        = node.fName;
     this.lineNumber   = node.lineNumber;
     this.columnNumber = node.columnNumber;
     this.nodeListType = node.nodeListType;
     node.children.ForEach(c => AddChild(c));
 }
Пример #2
0
 internal SymbolNode(SymbolNode node)
 {
     this.symbolText = node.symbolText;
     this.symbolPrefix = node.symbolPrefix;
     this.fName = node.fName;
     this.lineNumber = node.lineNumber;
     this.columnNumber = node.columnNumber;
     this.nodeListType = node.nodeListType;
     node.children.ForEach(c => AddChild(c));
 }
Пример #3
0
 public void RemoveChild(SymbolNode child)
 {
     children.Remove(child);
     updateCount++;
 }
Пример #4
0
 public void AddChild(SymbolNode child)
 {
     children.Add(child);
     updateCount++;
 }
Пример #5
0
        private void CreateSearchNodes()
        {
            // "flat" structure
            root = new SymbolNode("Test template", "", "testTemplace.zzz", 0, 0, SymbolNode.LibraryNodeType.Hierarchy);

            namespaceNode = new NamespaceNode("ClassLibrary1", "", "Class1.cs", 7, 0);
            classNode = new ModelNode("Class1", "ClassLibrary1.", "Class1.cs", 7, 17);
            memberNode = new MemberNode("GetBlaBlaBla", "ClassLibrary1.Class1.", "Class1.cs", 9, 22);

            ModelReferenceList
                classReferenceNode = new ModelReferenceList(
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs - (8, 18) : public class Class1(NDjango symbol)",
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs",
                    "", 8, 18),
                classReferenceNode1 = new ModelReferenceList(
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class2.cs - (7, 13) : Class1 c1 = new Class1();(NDjango symbol)",
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class2.cs",
                    "", 7, 13);
            classNode.AddChild(classReferenceNode);
            classNode.AddChild(classReferenceNode1);

            MemberReferenceList
                methodReferenceNode = new MemberReferenceList(
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs - (10, 23) : public Class1 GetBlaBlaBla()(NDjango symbol)",
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs",
                    "", 10, 23),
                methodReferenceNode1 = new MemberReferenceList(
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs - (0, 0) : public Class1 GetBlaBlaBla()(NDjango symbol)",
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs",
                    "", 0, 0),
                methodReferenceNode2 = new MemberReferenceList(
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs - (0, 0) : public Class1 GetBlaBlaBla()(NDjango symbol)",
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs",
                    "", 0, 0);

            memberNode.AddChild(methodReferenceNode);
            memberNode.AddChild(methodReferenceNode1);
            memberNode.AddChild(methodReferenceNode2);

            NamespaceReferenceList
                nsl1 = new NamespaceReferenceList(
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs - (2, 2) (NDjango symbol)",
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class1.cs",
                    "", 0, 0),
                nsl2 = new NamespaceReferenceList(
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class2.cs - (3, 3) (NDjango symbol)",
                    @"C:\Users\sivanov\Documents\Visual Studio 2010\Projects\ClassLibrary1\ClassLibrary1\Class2.cs",
                    "", 0, 0);

            namespaceNode.AddChild(nsl1);
            namespaceNode.AddChild(nsl2);

            root.AddChild(memberNode);
            root.AddChild(classNode);
            root.AddChild(namespaceNode);
        }
Пример #6
0
        internal IVsSimpleObjectList2 FilterView(LibraryNodeType filterType, VSOBSEARCHCRITERIA2[] pobSrch)
        {
            SymbolNode
                filtered = null,
                temp     = null;

            if (!filteredView.TryGetValue(filterType, out temp))
            {   // Filling filtered view
                filtered = this.Clone();
                for (int i = 0; i < filtered.children.Count;)
                {
                    if (0 == (filtered.children[i].nodeListType & filterType))
                    {
                        filtered.children.RemoveAt(i);
                    }
                    else
                    {
                        i += 1;
                    }
                }
                filteredView.Add(filterType, filtered.Clone());
            }
            else
            {
                filtered = temp.Clone(); // making sure we filter a new node
            }
            // Checking if we need to perform search
            if (pobSrch != null)
            {
                Regex reg;
                switch (pobSrch[0].eSrchType)
                {
                case VSOBSEARCHTYPE.SO_ENTIREWORD:
                    reg = new Regex(string.Format("^{0}$", pobSrch[0].szName.ToLower()));
                    break;

                case VSOBSEARCHTYPE.SO_PRESTRING:
                    reg = new Regex(string.Format("^{0}.*", pobSrch[0].szName.ToLower()));
                    break;

                case VSOBSEARCHTYPE.SO_SUBSTRING:
                    reg = new Regex(string.Format(".*{0}.*", pobSrch[0].szName.ToLower()));
                    break;

                default:
                    throw new NotImplementedException();
                }

                for (int i = 0; i < filtered.children.Count;)
                {
                    if (!reg.Match(filtered.children[i].UniqueName.ToLower()).Success)
                    {
                        filtered.children.RemoveAt(i);
                    }
                    else
                    {
                        i += 1;
                    }
                }
            }

            return(filtered as IVsSimpleObjectList2);
        }
Пример #7
0
 public void RemoveChild(SymbolNode child)
 {
     children.Remove(child);
     updateCount++;
 }
Пример #8
0
 public void AddChild(SymbolNode child)
 {
     children.Add(child);
     updateCount++;
 }