public int OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { if (rgszMkNewNames == null || rgpProjects == null || rgszMkOldNames == null) return VSConstants.E_POINTER; int iDirectory = 0; for (int i = 0; i < cDirs; i++) { string s = rgszMkOldNames[i]; if (!string.IsNullOrEmpty(s)) StatusCache.MarkDirty(s); s = rgszMkNewNames[i]; if (!string.IsNullOrEmpty(s)) StatusCache.MarkDirty(s); } for (int iProject = 0; (iProject < cProjects) && (iDirectory < cDirs); iProject++) { int iLastDirectoryThisProject = (iProject < cProjects - 1) ? rgFirstIndices[iProject + 1] : cDirs; IVsSccProject2 sccProject = rgpProjects[iProject] as IVsSccProject2; bool track = SccProvider.TrackProjectChanges(sccProject); for (; iDirectory < iLastDirectoryThisProject; iDirectory++) { if (sccProject == null || !track) continue; // Not handled by our provider SccProvider.OnProjectDirectoryRenamed(sccProject, GitTools.GetNormalizedFullPath(rgszMkOldNames[iDirectory]), GitTools.GetNormalizedFullPath(rgszMkNewNames[iDirectory]), rgFlags[iDirectory]); } } return VSConstants.S_OK; }
/// <summary> /// Notifies the environment that directories have been renamed. /// </summary> /// <param name="oldPaths">The paths to the old directories.</param> /// <param name="newPaths">The paths to the new directories.</param> public void OnDirectoriesRenamed(string[] oldPaths, string[] newPaths) { Tracer.VerifyNonNullArgument(oldPaths, "oldPaths"); Tracer.VerifyNonNullArgument(newPaths, "newPaths"); if (oldPaths.Length != newPaths.Length) { throw new ArgumentException("The old and new path arrays must match in size.", "oldPaths"); } int length = oldPaths.Length; // If the arrays are zero-length, then there's nothing to do. if (length == 0) { return; } // Fill in the flags array (since there are no flags yet, we can leave the array at its default value). VSRENAMEDIRECTORYFLAGS[] flags = new VSRENAMEDIRECTORYFLAGS[length]; int hr = this.Tracker.OnAfterRenameDirectories(this.project, length, oldPaths, newPaths, flags); NativeMethods.ThrowOnFailure(hr); }
int IVsTrackProjectDocumentsEvents2.OnAfterRenameDirectories( int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { return VSConstants.S_OK; }
public int OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { renaimng_in_progress = false; return VSConstants.S_OK; }
public virtual int OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { return VSConstants.E_NOTIMPL; }
public int OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { return 0; }
void IAnkhSccProviderEvents.OnProjectDirectoryRenamed(IVsSccProject2 sccProject, string oldName, string newName, VSRENAMEDIRECTORYFLAGS vSRENAMEDIRECTORYFLAGS) { SccProjectData data; ProjectMap.EnsureSccProject(sccProject, out data); OnProjectDirectoryRenamed(data, oldName, newName); }
public int OnAfterRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { return VSConstants.S_OK; }
/// <summary> /// Called when a directory 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> internal void OnProjectDirectoryRenamed(IVsSccProject2 project, string oldName, string newName, VSRENAMEDIRECTORYFLAGS flags) { SccProjectData data; if (!_projectMap.TryGetValue(project, out data)) return; // Not managed by us if (!IsActive) return; Debug.Assert(!Directory.Exists(oldName)); Debug.Assert(Directory.Exists(newName)); GC.KeepAlive(newName); GC.KeepAlive(oldName); }
int IVsTrackProjectDocumentsEvents2.OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { GenerateEvents(rgpProjects, rgFirstIndices, rgszMkNewNames, DirectoryRenamed, new ProjectDocumentsChangeEventArgs()); return NativeMethods.S_OK; }
public int OnAfterRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { throw new NotImplementedException(); }
public int OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { TraceAdviseEvent("OnAfterRenameDirectories", rgszMkOldNames); return VSConstants.E_NOTIMPL; }
public int OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { for (int i = 0; i < rgszMkOldNames.Length; i++) { DocumentEvents.Add("OnAfterRenameDirectories " + rgszMkOldNames[i] + " " + rgszMkNewNames[i] + " " + rgFlags[i]); CodeDocumentEvents.Add("OnAfterRenameDirectories(" + GetRelativePath(rgpProjects[0], rgszMkOldNames[i]) + ", " + GetRelativePath(rgpProjects[0], rgszMkNewNames[i]) + ", " + GetEnum(rgFlags[i]) + ")"); } return VSConstants.S_OK; }
int IVsTrackProjectDocumentsEvents2.OnAfterRenameDirectories(int cProjects, int cDirs, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgszMkOldNames, string[] rgszMkNewNames, VSRENAMEDIRECTORYFLAGS[] rgFlags) { _flavoredProjectBase.GenerateEvents(rgpProjects, rgFirstIndices, rgszMkNewNames, _flavoredProjectBase.DirectoryRenamed, new ProjectDocumentsChangeEventArgs()); return VSConstants.S_OK; }