/// <summary> /// Factory method initializing instance of <see cref="ProjectNames"/> with values retrieved from a DTE project. /// </summary> /// <param name="dteProject">DTE project to get project names for.</param> /// <returns>New instance of <see cref="ProjectNames"/>.</returns> public static async Task <ProjectNames> FromDTEProjectAsync(EnvDTE.Project dteProject) { Assumes.Present(dteProject); await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); return(new ProjectNames( fullName: dteProject.FullName, uniqueName: EnvDTEProjectInfoUtility.GetUniqueName(dteProject), shortName: EnvDTEProjectInfoUtility.GetName(dteProject), customUniqueName: await EnvDTEProjectInfoUtility.GetCustomUniqueNameAsync(dteProject))); }
/// <summary> /// Factory method initializing instance of <see cref="ProjectNames"/> with values retrieved from a DTE project. /// </summary> /// <param name="dteProject">DTE project to get project names for.</param> /// <returns>New instance of <see cref="ProjectNames"/>.</returns> public static async Task <ProjectNames> FromDTEProjectAsync(EnvDTE.Project dteProject) { Assumes.Present(dteProject); ThreadHelper.ThrowIfNotOnUIThread(); return(new ProjectNames( fullName: dteProject.FullName, uniqueName: EnvDTEProjectInfoUtility.GetUniqueName(dteProject), shortName: EnvDTEProjectInfoUtility.GetName(dteProject), customUniqueName: await EnvDTEProjectInfoUtility.GetCustomUniqueNameAsync(dteProject))); }
/// <summary> /// Factory method initializing instance of <see cref="ProjectNames"/> with values retrieved from a DTE project. /// </summary> /// <param name="dteProject">DTE project to get project names for.</param> /// <returns>New instance of <see cref="ProjectNames"/>.</returns> public static ProjectNames FromDTEProject(EnvDTE.Project dteProject) { if (dteProject == null) { throw new ArgumentNullException(nameof(dteProject)); } Debug.Assert(ThreadHelper.CheckAccess()); return(new ProjectNames( fullName: dteProject.FullName, uniqueName: EnvDTEProjectInfoUtility.GetUniqueName(dteProject), shortName: EnvDTEProjectInfoUtility.GetName(dteProject), customUniqueName: EnvDTEProjectInfoUtility.GetCustomUniqueName(dteProject))); }
public static IVsHierarchy ToVsHierarchy(EnvDTE.Project project) { ThreadHelper.ThrowIfNotOnUIThread(); IVsHierarchy hierarchy; // Get the vs solution var solution = ServiceLocator.GetInstance <IVsSolution>(); var hr = solution.GetProjectOfUniqueName(EnvDTEProjectInfoUtility.GetUniqueName(project), out hierarchy); if (hr != VSConstants.S_OK) { Marshal.ThrowExceptionForHR(hr); } return(hierarchy); }
public static async Task CollapseAllNodesAsync(ISolutionManager solutionManager, IDictionary <string, ISet <VsHierarchyItem> > ignoreNodes) { // this operation needs to execute on UI thread await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetInstance <EnvDTE.DTE>(); var projects = dte.Solution.Projects; foreach (var project in projects.Cast <EnvDTE.Project>()) { ISet <VsHierarchyItem> expandedNodes; if (ignoreNodes.TryGetValue(EnvDTEProjectInfoUtility.GetUniqueName(project), out expandedNodes) && expandedNodes != null) { CollapseProjectHierarchyItems(project, expandedNodes); } } }
/// <summary> /// Factory method initializing instance of <see cref="ProjectNames"/> with values retrieved from a DTE project. /// </summary> /// <param name="dteProject">DTE project to get project names for.</param> /// <returns>New instance of <see cref="ProjectNames"/>.</returns> public static async Task <ProjectNames> FromDTEProjectAsync(EnvDTE.Project dteProject, IVsSolution5 vsSolution5) { Assumes.Present(dteProject); await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var fullname = dteProject.FullName; var uniqueName = EnvDTEProjectInfoUtility.GetUniqueName(dteProject); var shortName = EnvDTEProjectInfoUtility.GetName(dteProject); var customUniqueName = await EnvDTEProjectInfoUtility.GetCustomUniqueNameAsync(dteProject); var projectId = GetProjectGuid(fullname, vsSolution5); return(new ProjectNames( fullName: fullname, uniqueName: uniqueName, shortName: shortName, customUniqueName: customUniqueName, projectId: projectId)); }
public static async TaskExpandedNodes GetAllExpandedNodesAsync(ISolutionManager solutionManager) { // this operation needs to execute on UI thread await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetInstance <EnvDTE.DTE>(); var projects = dte.Solution.Projects; var results = new Dictionary <string, ISet <VsHierarchyItem> >(StringComparer.OrdinalIgnoreCase); foreach (var project in projects.Cast <EnvDTE.Project>()) { var expandedNodes = GetExpandedProjectHierarchyItems(project); Debug.Assert(!results.ContainsKey(EnvDTEProjectInfoUtility.GetUniqueName(project))); results[EnvDTEProjectInfoUtility.GetUniqueName(project)] = new HashSet <VsHierarchyItem>(expandedNodes); } return(results); }