示例#1
0
 public int?GetLineNumber(string fullFilePath, int fileLineNumber, FileNumberBasis targetBasis)
 {
     if (fullFilePath == null)
     {
         return(null);
     }
     else
     {
         return(fileLineNumber);
     }
 }
        public static int GetLineNumber(string[] local, string[] remote, int lineNumber, FileNumberBasis targetBasis)
        {
            var changes = Microsoft.TeamFoundation.Diff.DiffFinder <string> .LcsDiff.Diff(remote,
                                                                                          local,
                                                                                          EqualityComparer <string> .Default);

            var localLineNumber  = 0;
            var serverLineNumber = 0;


            if (targetBasis == FileNumberBasis.Server)
            {
                foreach (var change in changes)
                {
                    if (lineNumber < change.ModifiedStart)
                    {
                        break;
                    }
                    else if (lineNumber > change.ModifiedEnd)
                    {
                        localLineNumber  = change.ModifiedEnd;
                        serverLineNumber = change.OriginalEnd;
                    }
                    else
                    {
                        return(change.OriginalStart);
                    }
                }

                return(lineNumber + (serverLineNumber - localLineNumber));
            }
            else
            {
                foreach (var change in changes)
                {
                    if (lineNumber < change.OriginalStart)
                    {
                        break;
                    }
                    else if (lineNumber > change.OriginalEnd)
                    {
                        localLineNumber  = change.ModifiedEnd;
                        serverLineNumber = change.OriginalEnd;
                    }
                    else
                    {
                        return(change.ModifiedStart);
                    }
                }

                return(lineNumber + (localLineNumber - serverLineNumber));
            }
        }
 public int?GetLineNumber(string fullFilePath, int fileLineNumber, FileNumberBasis targetBasis)
 {
     return(null);
 }