Ejemplo n.º 1
0
        /// <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)));
        }
Ejemplo n.º 2
0
        /// <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)));
        }
Ejemplo n.º 3
0
        /// <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)));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
                }
            }
        }
Ejemplo n.º 6
0
        /// <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));
        }
Ejemplo n.º 7
0
        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);
        }