public void SetProject(DotNetProject configureProject) { this.project = configureProject; assemblies.Clear(); if (configureProject == null) { Reset(); return; } nugetDir = configureProject.ParentSolution.ItemDirectory.Combine("packages"); foreach (var asm in selectDialog.GetRecentFileReferences(project.ParentSolution.FileName)) { if (File.Exists(asm)) { assemblies.Add(new AssemblyInfo(asm)); } } foreach (var pr in configureProject.ParentSolution.GetAllItems <DotNetProject> ().SelectMany(p => p.References).Where(r => r.ReferenceType == ReferenceType.Assembly && !string.IsNullOrEmpty(r.HintPath))) { var file = new FilePath(pr.HintPath).CanonicalPath; if (File.Exists(file) && !IsNuGetAssembly(file) && !assemblies.Any(a => a.File.Equals(file))) { assemblies.Add(new AssemblyInfo(pr.HintPath)); } } basePath = configureProject.BaseDirectory; Reset(); }
public void Reset() { store.Clear(); bool isPcl = configureProject.IsPortableLibrary; foreach (SystemAssembly systemAssembly in targetContext.GetAssemblies(targetVersion)) { if (systemAssembly.Package.IsFrameworkPackage && (isPcl || systemAssembly.Name == "mscorlib")) { continue; } bool selected = IsSelected(ReferenceType.Package, systemAssembly.FullName, systemAssembly.Package.Name); int matchRank = 0; string name, version; if (stringMatcher != null) { string txt = systemAssembly.Name + " " + systemAssembly.Version; if (!stringMatcher.CalcMatchRank(txt, out matchRank)) { continue; } int[] match = stringMatcher.GetMatch(txt); name = GetMatchMarkup(treeView, systemAssembly.Name, match, 0); version = GetMatchMarkup(treeView, systemAssembly.Version, match, systemAssembly.Name.Length + 1); } else { name = GLib.Markup.EscapeText(systemAssembly.Name); version = GLib.Markup.EscapeText(systemAssembly.Version); } string pkg = systemAssembly.Package.GetDisplayName(); if (systemAssembly.Package.IsInternalPackage) { pkg += " " + GettextCatalog.GetString("(Provided by {0})", BrandingService.ApplicationName); } store.AppendValues(name, version, systemAssembly, selected, systemAssembly.FullName, pkg, MonoDevelop.Ide.Gui.Stock.Package, matchRank, ReferenceType.Package); } if (showAll) { Solution openSolution = configureProject.ParentSolution; if (openSolution == null) { return; } Dictionary <DotNetProject, bool> references = new Dictionary <DotNetProject, bool> (); foreach (Project projectEntry in openSolution.GetAllItems <Project>()) { if (projectEntry == configureProject) { continue; } bool selected = IsSelected(ReferenceType.Project, projectEntry.Name, ""); int matchRank = 0; string name; if (stringMatcher != null) { if (!stringMatcher.CalcMatchRank(projectEntry.Name, out matchRank)) { continue; } int[] match = stringMatcher.GetMatch(projectEntry.Name); name = GetMatchMarkup(treeView, projectEntry.Name, match, 0); } else { name = GLib.Markup.EscapeText(projectEntry.Name); } DotNetProject netProject = projectEntry as DotNetProject; if (netProject != null) { if (ProjectReferencePanel.ProjectReferencesProject(references, null, netProject, configureProject.Name)) { continue; } string reason; if (!configureProject.CanReferenceProject(netProject, out reason)) { continue; } } store.AppendValues(name, "", null, selected, projectEntry.FileName.ToString(), "", projectEntry.StockIcon, matchRank, ReferenceType.Project); } foreach (FilePath file in selectDialog.GetRecentFileReferences()) { bool selected = IsSelected(ReferenceType.Assembly, file, ""); int matchRank = 0; string fname = file.FileName; string name; string version = string.Empty; try { string sname = SystemAssemblyService.GetAssemblyName(file); var aname = SystemAssemblyService.ParseAssemblyName(sname); version = aname.Version.ToString(); } catch { continue; } if (stringMatcher != null) { if (!stringMatcher.CalcMatchRank(fname, out matchRank)) { continue; } int[] match = stringMatcher.GetMatch(fname); name = GetMatchMarkup(treeView, fname, match, 0); } else { name = GLib.Markup.EscapeText(fname); } store.AppendValues(name, version, null, selected, (string)file, GLib.Markup.EscapeText(file), MonoDevelop.Ide.Gui.Stock.OpenFolder, matchRank, ReferenceType.Assembly); } } }