public static bool BatchEventsApi(string id, string version) { return(ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var packageProjectEventService = ServiceLocator.GetComponent <IVsPackageInstallerProjectEvents>(); var installerServices = ServiceLocator.GetComponent <IVsPackageInstaller>(); var batchStartIds = new List <string>(); var batchEndIds = new List <string>(); packageProjectEventService.BatchStart += (args) => { batchStartIds.Add(args.BatchId); }; packageProjectEventService.BatchEnd += (args) => { batchEndIds.Add(args.BatchId); }; foreach (EnvDTE.Project project in dte.Solution.Projects) { installerServices.InstallPackage(null, project, id, version, false); } return batchStartIds.Count == 1 && batchEndIds.Count == 1 && batchStartIds[0].Equals(batchEndIds[0], StringComparison.Ordinal); })); }
private static async Task StorePSWindowAsync() { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); PSWindow = dte.ActiveWindow; }
private static async Task <string[]> GetErrorTasksAsync(vsBuildErrorLevel errorLevel) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); dte.ExecuteCommand("View.ErrorList", " "); EnvDTE.Window errorListWindow = null; foreach (EnvDTE.Window window in dte.Windows) { if (window.Caption.StartsWith(ErrorListWindowCaption, System.StringComparison.OrdinalIgnoreCase)) { errorListWindow = window; break; } } if (errorListWindow == null) { throw new InvalidOperationException("Unable to locate the error list"); } var errorList = errorListWindow.Object as ErrorList; if (errorList == null) { throw new InvalidOperationException("Unable to retrieve the error list"); } errorList.ShowErrors = true; errorList.ShowWarnings = true; errorList.ShowMessages = true; var errorItems = errorList.ErrorItems as ErrorItems; if (errorItems == null) { throw new InvalidOperationException("Unable to retrieve the error list items"); } var errorTasks = new List <ErrorItem>(); for (int i = 1; i <= errorItems.Count; i++) { var errorItem = errorItems.Item(i); var currentErrorLevel = (vsBuildErrorLevel)errorItem.ErrorLevel; if (currentErrorLevel == errorLevel) { errorTasks.Add(errorItem); } } var items = errorTasks.Select(e => e.Description as string).ToArray(); return(items); }
private static async Task NewTextFileAsync() { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); dte.ItemOperations.NewFile("General\\Text File"); dte.ActiveDocument.Object("TextDocument"); }
private static async Task <string> GetVSVersionAsync() { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var version = dte.Version; return(version); }
internal static async Task <EnvDTE80.Solution2> GetDTESolutionAsync() { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var dte2 = (EnvDTE80.DTE2)dte; var solution2 = dte2.Solution as EnvDTE80.Solution2; return(solution2); }
private static async Task <string> GetBuildOutputAsync() { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var dte2 = (DTE2)dte; var buildPane = dte2.ToolWindows.OutputWindow.OutputWindowPanes.Item(BuildOutputPaneName); var doc = buildPane.TextDocument; var sel = doc.Selection; sel.StartOfDocument(Extend: false); sel.EndOfDocument(Extend: true); var text = sel.Text; return(text); }
public static void RestorePackageApi() { ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var restorer = ServiceLocator.GetComponent <IVsPackageRestorer>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { restorer.RestorePackages(project); return; } }); }
public static void UninstallPackageApi(string id, bool dependency) { ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var uninstaller = ServiceLocator.GetComponent <IVsPackageUninstaller>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { uninstaller.UninstallPackage(project, id, dependency); return; } }); }
public static void InstallPackageApi(string source, string id, string version, bool prerelease) { ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var services = ServiceLocator.GetComponent <IVsPackageInstaller>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { services.InstallPackage(source, project, id, version, prerelease); return; } }); }
public static bool IsFileExistsInProject(string projectUniqueName, string filePath) { return(ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); foreach (EnvDTE.Project project in dte.Solution.Projects) { var solutionProjectPath = EnvDTEProjectInfoUtility.GetFullProjectPath(project); if (!string.IsNullOrEmpty(solutionProjectPath) && PathUtility.GetStringComparerBasedOnOS().Equals(solutionProjectPath, projectUniqueName)) { return await EnvDTEProjectUtility.ContainsFile(project, filePath); } } return false; })); }
private static async Task <object> NewProjectAsync( string templatePath, string outputPath, string templateName, string projectName, string solutionFolderName) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); await VSSolutionHelper.EnsureSolutionAsync(outputPath); string projectTemplateFilePath = null; var dte = ServiceLocator.GetDTE(); var dte2 = (DTE2)dte; var solution2 = dte2.Solution as Solution2; Project solutionFolderProject = null; dynamic newProject = null; projectTemplateFilePath = await GetProjectTemplateFilePathAsync(solution2, templateName, templatePath); var solutionDir = Path.GetDirectoryName(solution2.FullName); string destPath = null; if (string.IsNullOrEmpty(solutionFolderName)) { destPath = Path.Combine(solutionDir, projectName); } else { destPath = Path.Combine(solutionDir, Path.Combine(solutionFolderName, projectName)); } var window = dte2.ActiveWindow as Window2; solutionFolderProject = await CreateProjectFromTemplateAsync( solution2, solutionFolderName, projectTemplateFilePath, destPath, projectName); await CloseOpenDocumentsAsync(dte2); await Activatex86ConfigurationsAsync(dte2); window.SetFocus(); if (solutionFolderProject != null) { newProject = await VSSolutionHelper.GetProjectAsync(solutionFolderProject, projectName); } else { newProject = await VSSolutionHelper.GetProjectAsync(solution2, projectName); } if (newProject == null) { throw new InvalidOperationException( "Could not create new project or could not locate newly created project"); } return(newProject); }