public int OnQueryAddFiles(IVsProject project, int length, string[] files, VSQUERYADDFILEFLAGS[] rgFlags, VSQUERYADDFILERESULTS[] pSummaryResult, VSQUERYADDFILERESULTS[] rgResults) { try { if (files.Any(f => ProjectUtil.IsSliceFileName(f))) { if (project.IsMSBuildIceBuilderInstalled()) { for (int i = 0; i < length; ++i) { if (ProjectUtil.IsSliceFileName(files[i])) { if (!ProjectUtil.CheckGenerateFileIsValid(project, files[i])) { rgResults[i] = VSQUERYADDFILERESULTS.VSQUERYADDFILERESULTS_AddNotOK; pSummaryResult[i] = VSQUERYADDFILERESULTS.VSQUERYADDFILERESULTS_AddNotOK; } } } } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } return(0); }
public int OnQueryRenameFiles(IVsProject project, int filesLength, string[] oldNames, string[] newNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { try { if (project.IsMSBuildIceBuilderInstalled()) { for (int i = 0; i < filesLength; ++i) { if (ProjectUtil.IsSliceFileName(newNames[i])) { if (!ProjectUtil.CheckGenerateFileIsValid(project, newNames[i])) { rgResults[i] = VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; pSummaryResult[i] = VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; } } } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } return(0); }
public int OnAfterSave(uint docCookie) { ThreadHelper.JoinableTaskFactory.Run(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { if (Package.Instance.AutoBuilding) { IVsProject project = null; uint item = 0; string path = null; GetDocumentInfo(docCookie, ref project, ref item, ref path); if (ProjectUtil.IsSliceFileName(path) && project.IsMSBuildIceBuilderInstalled()) { Package.Instance.QueueProjectsForBuilding(new List <IVsProject>(new IVsProject[] { project })); } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } }); return(0); }
public int OnAfterRenameFiles(int projectsLength, int filesLength, IVsProject[] projects, int[] indices, string[] oldNames, string[] newNames, VSRENAMEFILEFLAGS[] rgFlags) { try { for (int i = 0; i < projectsLength; ++i) { IVsProject project = projects[i]; if (project.IsMSBuildIceBuilderInstalled()) { int j = indices[i]; int k = i < (projectsLength - 1) ? indices[i + 1] : filesLength; for (; j < k; ++j) { string oldPath = oldNames[i]; string newPath = newNames[j]; if (ProjectUtil.IsSliceFileName(oldPath) || ProjectUtil.IsSliceFileName(newPath)) { ProjectUtil.SetupGenerated(project); } } } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } return(0); }
public int OnQueryRenameFiles(IVsProject project, int filesLength, string[] oldNames, string[] newNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { ThreadHelper.JoinableTaskFactory.Run(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { if (project.IsMSBuildIceBuilderInstalled()) { for (int i = 0; i < filesLength; ++i) { if (ProjectUtil.IsSliceFileName(newNames[i])) { if (!ProjectUtil.CheckGenerateFileIsValid(project, newNames[i])) { rgResults[i] = VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; pSummaryResult[i] = VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; } } } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } }); return(0); }
public int OnAfterRemoveFiles(int projectsLength, int filesLength, IVsProject[] projects, int[] indices, string[] names, VSREMOVEFILEFLAGS[] rgFlags) { ThreadHelper.JoinableTaskFactory.Run(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { for (int i = 0; i < projectsLength; ++i) { IVsProject project = projects[i]; if (project.IsMSBuildIceBuilderInstalled()) { int j = indices[i]; int k = i < (projectsLength - 1) ? indices[i + 1] : filesLength; for (; j < k; ++j) { string path = names[i]; if (ProjectUtil.IsSliceFileName(path)) { ProjectUtil.SetupGenerated(project); break; } } } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } }); return(0); }
public int OnAfterAddFilesEx(int projectsLength, int filesLength, IVsProject[] projects, int[] indices, string[] names, VSADDFILEFLAGS[] rgFlags) { ThreadHelper.JoinableTaskFactory.Run(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { for (int i = 0; i < projectsLength; ++i) { IVsProject project = projects[i]; if (project.IsMSBuildIceBuilderInstalled()) { int j = indices[i]; int k = i < (projectsLength - 1) ? indices[i + 1] : filesLength; for (; j < k; ++j) { string path = names[i]; if (ProjectUtil.IsSliceFileName(path)) { // // Ensure the .ice file item has SliceCompile ItemType // var projectItem = project.GetProjectItem(path); if (projectItem != null) { project.EnsureIsCheckout(); var property = projectItem.Properties.Item("ItemType"); if (property != null && !property.Value.Equals("SliceCompile")) { property.Value = "SliceCompile"; } } ProjectUtil.AddGeneratedFiles(project, path); break; } } } } } catch (OperationCanceledException) { // Ignore, this could happen if the project is reloaded } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } }); return(0); }
public void InitializeProject(IVsProject project) { if (project.IsMSBuildIceBuilderInstalled()) { if (project.IsCppProject()) { VCUtil.SetupSliceFilter(project.GetDTEProject()); } else { if (project is IVsAggregatableProject) { project.AddProjectFlavorIfNotExists(IceBuilderNewFlavor); } } } }
public int OnAfterAddFilesEx(int projectsLength, int filesLength, IVsProject[] projects, int[] indices, string[] names, VSADDFILEFLAGS[] rgFlags) { try { for (int i = 0; i < projectsLength; ++i) { IVsProject project = projects[i]; if (project.IsMSBuildIceBuilderInstalled()) { int j = indices[i]; int k = i < (projectsLength - 1) ? indices[i + 1] : filesLength; for (; j < k; ++j) { string path = names[i]; if (ProjectUtil.IsSliceFileName(path)) { // // Ensure the .ice file item has SliceCompile ItemType // var projectItem = project.GetProjectItem(path); if (projectItem != null) { project.EnsureIsCheckout(); var property = projectItem.Properties.Item("ItemType"); if (property != null && !property.Value.Equals("SliceCompile")) { property.Value = "SliceCompile"; } } ProjectUtil.AddGeneratedFiles(project, path); break; } } } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } return(0); }
public int OnAfterSave(uint docCookie) { try { if (Package.Instance.AutoBuilding) { IVsProject project = null; uint item = 0; string path = null; GetDocumentInfo(docCookie, ref project, ref item, ref path); if (ProjectUtil.IsSliceFileName(path) && project.IsMSBuildIceBuilderInstalled()) { Package.Instance.QueueProjectsForBuilding(new List <IVsProject>(new IVsProject[] { project })); } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); } return(0); }