public int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { renaimng_in_progress = true; return VSConstants.S_OK; }
int IVsTrackProjectDocumentsEvents2.OnQueryRenameFiles( IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { return VSConstants.S_OK; }
public int OnQueryRenameFiles(IVsProject ivsProject, int cFiles, string[] oldNames, string[] newNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { for(int i = 0; i < oldNames.Length; ++i) { string oldName = oldNames[i]; string newName = newNames[i]; if(String.IsNullOrEmpty(oldName) || String.IsNullOrEmpty(newName)) { continue; } if(!Util.isSliceFilename(oldName) ) { continue; } ProjectItem item = Util.findItem(oldName); if(item == null) { continue; } if(!Util.isProjectItemFile(item)) { continue; } Project project = item.ContainingProject; if(project == null) { continue; } try { if(Util.isCSharpProject(project)) { String csPath = getCSharpGeneratedFileName(project, newName, "cs"); if(File.Exists(csPath) || Util.findItem(csPath, project.ProjectItems) != null) { MessageBox.Show("A file named '" + Path.GetFileName(csPath) + "' already exists.\n" + oldName + " could not be renamed to '" + item.Name + "'.", "Ice Visual Studio Add-in", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0); return -1; } // // Get rid of generated files, for the removed .ice file. // fileTracker().reap(project); ProjectItem generatedItem = Util.findItem(getCSharpGeneratedFileName(project, item, "cs"), project.ProjectItems); if(generatedItem == null) { continue; } generatedItem.Delete(); } else if(Util.isCppProject(project)) { string cppPath = getCppGeneratedFileName(project, newName, "." + Util.getSourceExt(project)); string hPath = Path.ChangeExtension(cppPath, "." + Util.getHeaderExt(project)); if(File.Exists(cppPath) || Util.findItem(cppPath, project.ProjectItems) != null) { MessageBox.Show("A file named '" + Path.GetFileName(cppPath) + "' already exists.\n" + "If you want to add '" + Path.GetFileName(newName) + "' first remove " + " '" + Path.GetFileName(cppPath) + "' and '" + Path.GetFileName(hPath) + "' from your project.", "Ice Visual Studio Add-in", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0); return -1; } if(File.Exists(hPath) || Util.findItem(hPath, project.ProjectItems) != null) { MessageBox.Show("A file named '" + Path.GetFileName(hPath) + "' already exists.\n" + "If you want to add '" + Path.GetFileName(newName) + "' first remove " + " '" + Path.GetFileName(cppPath) + "' and '" + Path.GetFileName(hPath) + "' from your project.", "Ice Visual Studio Add-in", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0); return -1; } // // Get rid of generated files, for the removed .ice file. // fileTracker().reap(project); string cppGeneratedPath = getCppGeneratedFileName(project, oldName, Util.getSourceExt(project)); string hGeneratedPath = Path.ChangeExtension(cppGeneratedPath, Util.getHeaderExt(project)); ProjectItem generatedItem = Util.findItem(cppGeneratedPath, project.ProjectItems); if(generatedItem != null) { generatedItem.Delete(); } generatedItem = Util.findItem(hGeneratedPath, project.ProjectItems); if(generatedItem != null) { generatedItem.Delete(); } } } catch(Exception ex) { Util.write(null, Util.msgLevel.msgError, ex.ToString() + "\n"); Util.unexpectedExceptionWarning(ex); throw; } } return 0; }
public virtual int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { return VSConstants.E_NOTIMPL; }
public int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { if (rgszMkNewNames == null || rgszMkOldNames == null) return VSConstants.E_POINTER; bool allOk = true; if (pProject == null) { // We are renaming the solution file (or something in the solution itself) for (int i = 0; i < cFiles; i++) { bool ok = true; if(!GitItem.IsValidPath(rgszMkOldNames[i])) continue; string oldName = GitTools.GetNormalizedFullPath(rgszMkOldNames[i]); string newName = GitTools.GetNormalizedFullPath(rgszMkNewNames[i]); if(oldName == newName) continue; SccProvider.OnBeforeSolutionRenameFile(oldName,newName, rgFlags[i], out ok); if (rgResults != null) rgResults[i] = ok ? VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameOK : VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; if (!ok) allOk = false; } } else { IVsSccProject2 sccProject = pProject as IVsSccProject2; bool track = SccProvider.TrackProjectChanges(sccProject); for (int i = 0; i < cFiles; i++) { bool ok = true; if (!GitItem.IsValidPath(rgszMkOldNames[i])) continue; string oldName = GitTools.GetNormalizedFullPath(rgszMkOldNames[i]); string newName = GitTools.GetNormalizedFullPath(rgszMkNewNames[i]); if (oldName == newName) continue; if (track) SccProvider.OnBeforeProjectRenameFile(sccProject, oldName, newName, rgFlags[i], out ok); if (rgResults != null) rgResults[i] = ok ? VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameOK : VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; if (!ok) allOk = false; } } if (pSummaryResult != null) pSummaryResult[0] = allOk ? VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameOK : VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; if (!allOk) _batchOk = false; return VSConstants.S_OK; }
public int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { throw new NotImplementedException(); }
internal void OnBeforeSolutionRenameFile(string oldName, string newName, VSQUERYRENAMEFILEFLAGS flags, out bool ok) { ok = true; if (!IsActive) return; //if (IsProjectFileOrSolution(oldName)) //{ // // TODO: Is enlisted -> Ask user! //} using (GitSccContext git = new GitSccContext(Context)) { if (!git.CouldAdd(newName, GitNodeKind.File)) { ok = false; return; } if (git.IsUnversioned(oldName)) return; } }
int IVsTrackProjectDocumentsEvents2.OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { return NativeMethods.S_OK; // We are not interested in this one }
/// <summary> /// Called just before a file in a project is renamed /// </summary> /// <param name="project">The SCC project.</param> /// <param name="oldName">The old name.</param> /// <param name="newName">The new name.</param> /// <param name="flags">The flags.</param> /// <param name="ok">if set to <c>true</c> [ok].</param> internal void OnBeforeProjectRenameFile(IVsSccProject2 project, string oldName, string newName, VSQUERYRENAMEFILEFLAGS flags, out bool ok) { ok = true; if (!_projectMap.ContainsKey(project)) return; // Not managed by us if (!IsActive) return; using (GitSccContext git = new GitSccContext(Context)) { if (!git.CouldAdd(newName, GitNodeKind.File)) { ok = false; return; } if (git.IsUnversioned(oldName)) return; } }
public int OnQueryRenameFiles(IVsProject ivsProject, int filesLength, string[] oldNames, string[] newNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { try { EnvDTE.Project project = DTEUtil.GetProject(ivsProject as IVsHierarchy); if(DTEUtil.IsIceBuilderEnabled(project)) { for(int i = 0; i < filesLength; ++i) { if(Path.GetExtension(oldNames[i]).Equals(".ice") && Path.GetExtension(newNames[i]).Equals(".ice")) { if(!ProjectUtil.CheckGenerateFileIsValid(project, newNames[i])) { rgResults[i] = VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; } } } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); throw; } return 0; }
public int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { TraceAdviseEvent("OnQueryRenameFiles", rgszMkOldNames); return VSConstants.E_NOTIMPL; }
public int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { var args = new QueryProjectRenameFilesEventArgs(this.events) { OldFiles = rgszMkOldNames, NewFiles = rgszMkNewNames }; //VSQUERYADDFILERESULTS.VSQUERYADDFILERESULTS_AddOK; //VSQUERYADDFILERESULTS.VSQUERYADDFILERESULTS_AddNotOK; this.events.TriggerQueryProjectRenameFiles(args); return VSConstants.S_OK; }
public int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults) { for (int i = 0; i < rgszMkOldNames.Length; i++) { DocumentEvents.Add("OnQueryRenameFiles " + rgszMkOldNames[i] + " " + rgszMkNewNames[i] + " " + rgFlags[i]); CodeDocumentEvents.Add("OnQueryRenameFiles(" + GetRelativePath(pProject, rgszMkOldNames[i]) + ", " + GetRelativePath(pProject, rgszMkNewNames[i]) + ", " + GetEnum(rgFlags[i]) + ")"); } return VSConstants.S_OK; }