public static void ExpandOnlyCSharpProjects(ITreeNavigator node)
        {
            if (node == null)
            {
                return;
            }

            var typename = node.DataItem.GetType().Name;

            if (typename == "Solution")
            {
                node.ExpandToNode();
            }

            if (node.HasChildren())
            {
                var continueLoop = node.MoveToFirstChild();
                while (continueLoop)
                {
                    if (node.DataItem is Project proj)
                    {
                        var filter = EssentialProperties.ExpandFilterArray;
                        if (filter.Length == 0)
                        {
                            node.MoveToFirstChild();
                            node.ExpandToNode();
                            node.MoveToParent();
                        }
                        else
                        {
                            foreach (var item in filter)
                            {
                                if (proj.Name.ToLower().Contains(item))
                                {
                                    node.MoveToFirstChild();
                                    node.ExpandToNode();
                                    node.MoveToParent();
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        ExpandOnlyCSharpProjects(node);
                    }
                    continueLoop = node.MoveNext();
                }
                node.MoveToParent();
            }
        }
 public virtual void JumpToPosition()
 {
     if (!file.IsNullOrEmpty)
     {
         var doc     = IdeApp.Workbench.OpenDocument(file, Math.Max(1, line), Math.Max(1, column));
         var project = WorkspaceObject as Project;
         if (doc != null && project != null)
         {
             doc.SetProject(project);
         }
     }
     else if (parentObject != null)
     {
         Pad pad = IdeApp.Workbench.GetPad <ProjectSolutionPad> ();
         ProjectSolutionPad spad = pad.Content as ProjectSolutionPad;
         ITreeNavigator     nav  = spad.TreeView.GetNodeAtObject(parentObject, true);
         if (nav != null)
         {
             nav.ExpandToNode();
             nav.Selected = true;
             nav.Expanded = true;
         }
     }
     TaskService.InformJumpToTask(this);
 }
Example #3
0
 public virtual void JumpToPosition()
 {
     if (!file.IsNullOrEmpty)
     {
         if (System.IO.File.Exists(file))
         {
             var project = WorkspaceObject as Project;
             IdeApp.Workbench.OpenDocument(file, project, Math.Max(1, line), Math.Max(1, column));
         }
         else
         {
             var pad = IdeApp.Workbench.GetPad <ErrorListPad> ()?.Content as ErrorListPad;
             pad?.FocusOutputView();
             ShowDocumentation();
         }
     }
     else if (parentObject != null)
     {
         Pad pad = IdeApp.Workbench.GetPad <ProjectSolutionPad> ();
         ProjectSolutionPad spad = pad.Content as ProjectSolutionPad;
         ITreeNavigator     nav  = spad.TreeView.GetNodeAtObject(parentObject, true);
         if (nav != null)
         {
             nav.ExpandToNode();
             nav.Selected = true;
             nav.Expanded = true;
         }
         ShowDocumentation();
     }
     TaskService.InformJumpToTask(this);
 }
        void SearchTreeviewhandleRowActivated(object o, RowActivatedArgs args)
        {
            Gtk.TreeIter selectedIter;
            if (searchTreeview.Selection.GetSelected(out selectedIter))
            {
                MonoDevelop.Projects.Dom.IMember member = (MonoDevelop.Projects.Dom.IMember)(searchMode != SearchMode.Type ? memberListStore.GetValue(selectedIter, 4) : typeListStore.GetValue(selectedIter, 4));
                ITreeNavigator nav = SearchMember(member);
                if (nav != null)
                {
                    nav.ExpandToNode();
                    nav.Selected = true;
                }
                if (searchMode == SearchMode.Disassembler)
                {
                    this.notebook1.Page = 0;
//						int idx = DomMethodNodeBuilder.Disassemble ((DomCecilMethod)member, false).ToUpper ().IndexOf (searchEntry.Text.ToUpper ());
//						this.inspectLabel.Selectable = true;
//						this.inspectLabel.SelectRegion (idx, idx + searchEntry.Text.Length);
                }
                if (searchMode == SearchMode.Decompiler)
                {
                    this.notebook1.Page = 1;
//						int idx = DomMethodNodeBuilder.Decompile ((DomCecilMethod)member, false).ToUpper ().IndexOf (searchEntry.Text.ToUpper ());
//						this.inspectLabel.Selectable = true;
//						this.inspectLabel.SelectRegion (idx, idx + searchEntry.Text.Length);
                }
            }
        }
        public void SelectAssembly(string fileName)
        {
            DomCecilCompilationUnit cu = null;

            foreach (DomCecilCompilationUnit unit in definitions)
            {
                if (unit.FileName == fileName)
                {
                    cu = unit;
                }
            }
            if (cu == null)
            {
                return;
            }

            ITreeNavigator nav = TreeView.GetRootNode();

            do
            {
                if (nav.DataItem == cu.AssemblyDefinition)
                {
                    nav.ExpandToNode();
                    nav.Selected = true;
                    return;
                }
            } while (nav.MoveNext());
        }
        public void Open(string url)
        {
            ITreeNavigator nav = SearchMember(url);

            if (nav == null)
            {
                foreach (DomCecilCompilationUnit definition in definitions.ToArray())
                {
                    foreach (AssemblyNameReference assemblyNameReference in definition.AssemblyDefinition.MainModule.AssemblyReferences)
                    {
                        string assemblyFile = Runtime.SystemAssemblyService.DefaultAssemblyContext.GetAssemblyLocation(assemblyNameReference.FullName, null);
                        if (assemblyFile != null && System.IO.File.Exists(assemblyFile))
                        {
                            AddReference(assemblyFile);
                        }
                    }
                }
                nav = SearchMember(url);
            }
            if (nav != null)
            {
                nav.ExpandToNode();
                nav.Selected = true;
            }
            else
            {
                LoggingService.LogError("Can't open: " + url + " (not found).");
            }
        }
Example #7
0
        public void SelectTest(UnitTest t)
        {
            ITreeNavigator node = FindTestNode(t);

            if (node != null)
            {
                node.ExpandToNode();
                node.Selected = true;
            }
        }
        public static void ExpandAll(ITreeNavigator node)
        {
            if (node == null)
            {
                return;
            }

            var typename = node.DataItem.GetType().Name;

            if (typename == "Solution")
            {
                node.ExpandToNode();
            }

            if (node.HasChildren())
            {
                var continueLoop = node.MoveToFirstChild();
                while (continueLoop)
                {
                    var wso = node.DataItem as WorkspaceObject;

                    if (node.DataItem is Project)
                    {
                        if (!string.IsNullOrWhiteSpace(EssentialProperties.ExpandFilter))
                        {
                            foreach (var item in EssentialProperties.ExpandFilterArray)
                            {
                                if (wso.Name.ToLower().Contains(item))
                                {
                                    ExpandProjectFiles(node);
                                    break;
                                }
                            }
                        }
                        else
                        {
                            ExpandProjectFiles(node);
                        }
                    }
                    else
                    {
                        ExpandAll(node);
                    }

                    continueLoop = node.MoveNext();
                }
                node.MoveToParent();
            }
        }
        static void SelectFile(ExtensibleTreeView treeView, DnxProject project, string file)
        {
            var projectFile = project.Files.GetFile(file);

            if (projectFile == null)
            {
                return;
            }

            ITreeNavigator navigator = treeView.GetNodeAtObject(projectFile, true);

            if (navigator != null)
            {
                navigator.ExpandToNode();
                navigator.Selected = true;
            }
        }
        private static void ExpandProjectFiles(ITreeNavigator node)
        {
            if (node == null)
            {
                return;
            }
#if DEBUG
            if (node.DataItem is ProjectFile f)
            {
                if (f.Name.ToLower().Contains("appstart.cs"))
                {
                    Debug.WriteLine("BINGO !!");
                }
            }

            if (node.DataItem is ProjectFolder folder)
            {
                if (folder.Name.ToLower().Contains("views"))
                {
                    Debug.WriteLine("BINGO !!");
                }
            }
#endif
            if (FilteredProjectCache.IsProjectItemExpanded(node.DataItem))
            {
                node.ExpandToNode();
                node.Expanded = true;
            }

            if (node.HasChildren())
            {
                var continueLoop = node.MoveToFirstChild();
                while (continueLoop)
                {
                    if (!(node.DataItem is ProjectFile pf) || string.IsNullOrEmpty(pf.DependsOn))
                    {
                        ExpandProjectFiles(node);
                    }
                    continueLoop = node.MoveNext();
                }
                node.MoveToParent();

                return;
            }
        }
        void SelectActiveFile()
        {
            Document doc = IdeApp.Workbench.ActiveDocument;

            if (doc != null && doc.Project != null)
            {
                string file = doc.FileName;
                if (file != null)
                {
                    ProjectFile pf = doc.Project.Files.GetFile(file);
                    if (pf != null)
                    {
                        ITreeNavigator nav = treeView.GetNodeAtObject(pf, true);
                        if (nav != null)
                        {
                            nav.ExpandToNode();
                            nav.Selected = true;
                        }
                    }
                }
            }
        }
		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;
		}
Example #14
0
		ITreeNavigator SearchMember (ITreeNavigator nav, string helpUrl)
		{
			bool searchType = helpUrl.StartsWith ("T:");
			do {
				if (IsMatch (nav, helpUrl, searchType)) {
					nav.ExpandToNode ();
					nav.Selected = nav.Expanded = true;
					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 && nav.Options ["PublicApiOnly"]) {
							nav.Options ["PublicApiOnly"] = PublicApiOnly;
							nav.MoveToFirstChild ();
							result = SearchMember (nav, helpUrl);
							if (result != null)
								return result;
							nav.MoveToParent ();
						}
					} catch (Exception) {
					}
				}
			} while (nav.MoveNext());
			return null;
		}