Ejemplo n.º 1
0
        public static bool TryGetActiveSolutionConfiguration(
            IServiceProvider serviceProvider,
            out SolutionBuild solutionBuild,
            out SolutionConfiguration2 activeConfiguration)
        {
            Contract.Requires(serviceProvider != null);
            Contract.Ensures(Contract.ValueAtReturn(out solutionBuild) != null || !Contract.Result <bool>());
            Contract.Ensures(Contract.ValueAtReturn(out activeConfiguration) != null || !Contract.Result <bool>());

            solutionBuild       = null;
            activeConfiguration = null;

            DTE dte = VsServiceProviderHelper.GetService <DTE>(serviceProvider);

            if (dte == null)
            {
                return(false);
            }
            var solution = dte.Solution;

            if (solution == null)
            {
                return(false);
            }
            solutionBuild = solution.SolutionBuild;
            Contract.Assume(solutionBuild != null);
            activeConfiguration = solutionBuild.ActiveConfiguration as SolutionConfiguration2;

            return(solutionBuild != null && activeConfiguration != null);
        }
Ejemplo n.º 2
0
        public static bool TryGetActiveProject(IServiceProvider serviceProvider, out Project project)
        {
            Contract.Requires(serviceProvider != null);
            Contract.Ensures(Contract.ValueAtReturn(out project) != null || !Contract.Result <bool>());

            project = null;
            try
            {
                var dte = VsServiceProviderHelper.GetService <DTE>(serviceProvider);

                if (dte == null)
                {
                    return(false);
                }

                if (dte.Solution != null)
                {
                    object[] projects = dte.ActiveSolutionProjects as object[];
                    if (projects != null && projects.Length == 1)
                    {
                        project = (Project)projects[0];
                    }
                }
                return(project != null);
            }
            catch (Exception ex)
            {
                ContractsVsPackage.SwallowedException(ex);
            }

            return(false);
        }
Ejemplo n.º 3
0
        public static void SaveAllFiles(IServiceProvider serviceProvider)
        {
            Contract.Requires(serviceProvider != null);

            DTE dte = VsServiceProviderHelper.GetService <DTE>(serviceProvider);

            if (dte != null)
            {
                dte.ExecuteCommand("File.SaveAll", "");
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Code taken from Pex
        /// </summary>
        /// <param name="serviceProvider"></param>
        /// <param name="point"></param>
        /// <returns></returns>
        public static bool TryGetSelectionPoint(IServiceProvider serviceProvider, out VirtualPoint point)
        {
            Contract.Requires(serviceProvider != null);
            Contract.Ensures(Contract.ValueAtReturn(out point) != null || !Contract.Result <bool>());

            point = null;

            var dte = VsServiceProviderHelper.GetService <DTE>(serviceProvider);

            if (dte == null)
            {
                return(false);
            }

            try
            {
                // code window supported only
                Document document = dte.ActiveDocument;
                if (document != null)
                {
                    TextDocument tdoc = document.Object("TextDocument") as TextDocument;
                    if (tdoc != null)
                    {
                        try
                        {
                            Contract.Assume(tdoc.Selection != null);
                            point = tdoc.Selection.TopPoint;
                        }
                        catch (COMException)
                        { }
                    }
                }
            }
            catch (ArgumentException) { } // reported by user
            catch (COMException) { }

            return(point != null);
        }
Ejemplo n.º 5
0
        private static IVsHierarchy HierarchyFromUniqueName(
            IServiceProvider serviceProvider,
            string uniqueName)
        {
            Contract.Requires(serviceProvider != null);
            Contract.Requires(uniqueName != null);

            var solution = VsServiceProviderHelper.GetService <IVsSolution>(serviceProvider);

            if (solution == null)
            {
                return(null);
            }

            IVsHierarchy hierarchy;
            var          hResult = solution.GetProjectOfUniqueName(uniqueName, out hierarchy);

            if (Microsoft.VisualStudio.ErrorHandler.Failed(hResult))
            {
                throw Marshal.GetExceptionForHR(hResult);
            }
            return(hierarchy);
        }