protected void GetStartIndex(SharpTreeNode node, out int start, out int end) { EnsureChildrenFiltered(); for (int i = 0; i < Children.Count; i++) { if (node.GetType() == Children[i].GetType()) { start = i; for (i++; i < Children.Count; i++) { if (node.GetType() != Children[i].GetType()) { break; } } end = i; return; } } IList <Type> typeOrder = ChildTypeOrder; if (typeOrder != null) { int typeIndex = typeOrder.IndexOf(node.GetType()); Debug.Assert(typeIndex >= 0); if (typeIndex >= 0) { Type prevType = null; for (int i = 0; i < Children.Count; i++) { var type = Children[i].GetType(); if (prevType == type) { continue; } prevType = type; int index = typeOrder.IndexOf(type); Debug.Assert(index >= 0); if (typeIndex < index) { start = end = i; return; } } } } start = end = Children.Count; }
protected override bool IsVisible(SharpTreeNode node) { return(ILSpyPackage.ActiveHandler != null && ILSpyPackage.ActiveHandler.TargetObject != null && node != null && !(node.GetType().Name.Contains("AnalyzedTypeTreeNode"))); }