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)); }
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)); }
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); }
public void RemoveChild(SymbolNode child) { children.Remove(child); updateCount++; }
public void AddChild(SymbolNode child) { children.Add(child); updateCount++; }
public void RemoveChild(SymbolNode child) { children.Remove(child); updateCount++; }
public void AddChild(SymbolNode child) { children.Add(child); updateCount++; }
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); }