コード例 #1
0
        //==========================================================================================
        // Methods
        //==========================================================================================

        /// <summary>
        /// Queries the environment to see whether the directories in the project can be renamed.
        /// </summary>
        /// <param name="oldPaths">The paths to the old directories.</param>
        /// <param name="newPaths">The paths to the new directories.</param>
        /// <returns>true if the directories can be renamed; otherwise, false.</returns>
        public bool CanRenameDirectories(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 rename.
            if (length == 0)
            {
                return(true);
            }

            // Fill in the flags array (since there are no flags yet, we can leave the array at its default value).
            VSQUERYRENAMEDIRECTORYFLAGS[]   flags         = new VSQUERYRENAMEDIRECTORYFLAGS[length];
            VSQUERYRENAMEDIRECTORYRESULTS[] summaryResult = new VSQUERYRENAMEDIRECTORYRESULTS[length];
            VSQUERYRENAMEDIRECTORYRESULTS[] results       = new VSQUERYRENAMEDIRECTORYRESULTS[length];
            int hr = this.Tracker.OnQueryRenameDirectories(this.project, length, oldPaths, newPaths, flags, summaryResult, results);

            NativeMethods.ThrowOnFailure(hr);

            return(summaryResult[0] == VSQUERYRENAMEDIRECTORYRESULTS.VSQUERYRENAMEDIRECTORYRESULTS_RenameOK);
        }
コード例 #2
0
 int IVsTrackProjectDocumentsEvents2.OnQueryRenameDirectories(
     IVsProject pProject,
     int cDirs,
     string[] rgszMkOldNames,
     string[] rgszMkNewNames,
     VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags,
     VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult,
     VSQUERYRENAMEDIRECTORYRESULTS[] rgResults)
 {
     return VSConstants.S_OK;
 }
コード例 #3
0
 public int OnQueryRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags, VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult, VSQUERYRENAMEDIRECTORYRESULTS[] rgResults)
 {
     renaimng_in_progress = true;
     return VSConstants.S_OK;
 }
コード例 #4
0
 public virtual int OnQueryRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags, VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult, VSQUERYRENAMEDIRECTORYRESULTS[] rgResults)
 {
     return VSConstants.E_NOTIMPL;
 }
コード例 #5
0
ファイル: Builder.cs プロジェクト: bholl/zeroc-ice
 public int OnQueryRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, 
                                     string[] rgszMkNewNames, VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags,
                                     VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult, 
                                     VSQUERYRENAMEDIRECTORYRESULTS[] rgResults)
 {
     return 0;
 }
コード例 #6
0
 public int OnQueryRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags, VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult, VSQUERYRENAMEDIRECTORYRESULTS[] rgResults) {
     throw new NotImplementedException();
 }
コード例 #7
0
        public int OnQueryRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags, VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult, VSQUERYRENAMEDIRECTORYRESULTS[] rgResults)
        {
            if (rgszMkNewNames == null || pProject == null || rgszMkOldNames == null)
                return VSConstants.E_POINTER;

            IVsSccProject2 sccProject = pProject as IVsSccProject2;
            bool track = SccProvider.TrackProjectChanges(sccProject);

            if (track)
                for (int i = 0; i < cDirs; i++)
                {
                    string s = rgszMkNewNames[i];
                    if (!string.IsNullOrEmpty(s))
                        StatusCache.MarkDirty(s);
                }

            bool allOk = true;
            for (int i = 0; i < cDirs; i++)
            {
                bool ok = true;

                if (track)
                    SccProvider.OnBeforeProjectDirectoryRename(sccProject,
                        GitTools.GetNormalizedFullPath(rgszMkOldNames[i]),
                        GitTools.GetNormalizedFullPath(rgszMkNewNames[i]), rgFlags[i], out ok);

                if (rgResults != null)
                    rgResults[i] = ok ? VSQUERYRENAMEDIRECTORYRESULTS.VSQUERYRENAMEDIRECTORYRESULTS_RenameOK : VSQUERYRENAMEDIRECTORYRESULTS.VSQUERYRENAMEDIRECTORYRESULTS_RenameNotOK;

                if (!ok)
                    allOk = false;
            }

            if (pSummaryResult != null)
                pSummaryResult[0] = allOk ? VSQUERYRENAMEDIRECTORYRESULTS.VSQUERYRENAMEDIRECTORYRESULTS_RenameOK : VSQUERYRENAMEDIRECTORYRESULTS.VSQUERYRENAMEDIRECTORYRESULTS_RenameNotOK;

            if (!allOk)
                _batchOk = false;

            return VSConstants.S_OK;
        }
コード例 #8
0
ファイル: Project.cs プロジェクト: Graham-Pedersen/IronPlot
 int IVsTrackProjectDocumentsEvents2.OnQueryRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags, VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult, VSQUERYRENAMEDIRECTORYRESULTS[] rgResults)
 {
     return NativeMethods.S_OK; // We are not interested in this one
 }
コード例 #9
0
        //==========================================================================================
        // Methods
        //==========================================================================================
        /// <summary>
        /// Queries the environment to see whether the directories in the project can be renamed.
        /// </summary>
        /// <param name="oldPaths">The paths to the old directories.</param>
        /// <param name="newPaths">The paths to the new directories.</param>
        /// <returns>true if the directories can be renamed; otherwise, false.</returns>
        public bool CanRenameDirectories(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 rename.
            if (length == 0)
            {
                return true;
            }

            // Fill in the flags array (since there are no flags yet, we can leave the array at its default value).
            VSQUERYRENAMEDIRECTORYFLAGS[] flags = new VSQUERYRENAMEDIRECTORYFLAGS[length];
            VSQUERYRENAMEDIRECTORYRESULTS[] summaryResult = new VSQUERYRENAMEDIRECTORYRESULTS[length];
            VSQUERYRENAMEDIRECTORYRESULTS[] results = new VSQUERYRENAMEDIRECTORYRESULTS[length];
            int hr = this.Tracker.OnQueryRenameDirectories(this.project, length, oldPaths, newPaths, flags, summaryResult, results);
            NativeMethods.ThrowOnFailure(hr);

            return (summaryResult[0] == VSQUERYRENAMEDIRECTORYRESULTS.VSQUERYRENAMEDIRECTORYRESULTS_RenameOK);
        }
コード例 #10
0
 public int OnQueryRenameDirectories(IVsProject pProject, int cDirs, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEDIRECTORYFLAGS[] rgFlags, VSQUERYRENAMEDIRECTORYRESULTS[] pSummaryResult, VSQUERYRENAMEDIRECTORYRESULTS[] rgResults) {
     for (int i = 0; i < rgszMkOldNames.Length; i++) {
         DocumentEvents.Add("OnQueryRenameDirectories " + rgszMkOldNames[i] + " " + rgszMkNewNames[i]);
         CodeDocumentEvents.Add("OnQueryRenameDirectories (" + GetRelativePath(pProject, rgszMkOldNames[i]) + ", " + GetRelativePath(pProject, rgszMkNewNames[i]) + ")");
     }
     return VSConstants.S_OK;
 }