ITreeNavigator SearchMember (ITreeNavigator nav, string helpUrl) { if (nav == null) return null; bool searchType = helpUrl.StartsWith ("T:", StringComparison.Ordinal); do { if (IsMatch (nav, helpUrl, searchType)) { inspectEditor.ClearSelection (); nav.ExpandToNode (); nav.Selected = nav.Expanded = true; nav.ScrollToNode (); return nav; } if (!SkipChildren (nav, helpUrl, searchType) && nav.HasChildren ()) { nav.MoveToFirstChild (); ITreeNavigator result = SearchMember (nav, helpUrl); if (result != null) return result; if (!nav.MoveToParent ()) { return null; } try { if (nav.DataItem is TypeDefinition && PublicApiOnly) { nav.MoveToFirstChild (); result = SearchMember (nav, helpUrl); if (result != null) return result; nav.MoveToParent (); } } catch (Exception) { } } } while (nav.MoveNext()); return null; }
ITreeNavigator SearchMember (ITreeNavigator nav, string helpUrl, bool expandNode = true) { if (nav == null) return null; bool searchType = helpUrl.StartsWith ("T:", StringComparison.Ordinal); do { if (IsMatch (nav, helpUrl, searchType)) { inspectEditor.ClearSelection (); nav.ExpandToNode (); if (expandNode) { nav.Selected = nav.Expanded = true; nav.ScrollToNode (); } else { nav.Selected = true; nav.ScrollToNode (); } return nav; } if (!SkipChildren (nav, helpUrl, searchType) && nav.HasChildren ()) { nav.MoveToFirstChild (); ITreeNavigator result = SearchMember (nav, helpUrl, expandNode); if (result != null) return result; if (!nav.MoveToParent ()) { return null; } } } while (nav.MoveNext()); return null; }