コード例 #1
0
		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;
		}
コード例 #2
0
		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;
		}