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); }
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); }
public static void SaveAllFiles(IServiceProvider serviceProvider) { Contract.Requires(serviceProvider != null); DTE dte = VsServiceProviderHelper.GetService <DTE>(serviceProvider); if (dte != null) { dte.ExecuteCommand("File.SaveAll", ""); } }
/// <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); }
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); }