Size() 공개 메소드

public Size ( ) : int
리턴 int
예제 #1
0
 private void Format(EditList edits, Text a, Text b)
 {
     for (int curIdx = 0; curIdx < edits.Count;)
     {
         Edit curEdit = edits[curIdx];
         int  endIdx  = FindCombinedEnd(edits, curIdx);
         Edit endEdit = edits[endIdx];
         int  aCur    = Math.Max(0, curEdit.GetBeginA() - Context);
         int  bCur    = Math.Max(0, curEdit.GetBeginB() - Context);
         int  aEnd    = Math.Min(a.Size(), endEdit.GetEndA() + Context);
         int  bEnd    = Math.Min(b.Size(), endEdit.GetEndB() + Context);
         WriteHunkHeader(aCur, aEnd, bCur, bEnd);
         while (aCur < aEnd || bCur < bEnd)
         {
             if (aCur < curEdit.GetBeginA() || endIdx + 1 < curIdx)
             {
                 WriteContextLine(a, aCur);
                 if (IsEndOfLineMissing(a, aCur))
                 {
                     _out.Append(NoNewLine);
                 }
                 aCur++;
                 bCur++;
             }
             else
             {
                 if (aCur < curEdit.GetEndA())
                 {
                     WriteRemovedLine(a, aCur);
                     if (IsEndOfLineMissing(a, aCur))
                     {
                         _out.Append(NoNewLine);
                     }
                     aCur++;
                 }
                 else
                 {
                     if (bCur < curEdit.GetEndB())
                     {
                         WriteAddedLine(b, bCur);
                         if (IsEndOfLineMissing(b, bCur))
                         {
                             _out.Append(NoNewLine);
                         }
                         bCur++;
                     }
                 }
             }
             if (End(curEdit, aCur, bCur) && ++curIdx < edits.Count)
             {
                 curEdit = edits[curIdx];
             }
         }
     }
 }
예제 #2
0
        private void Format(EditList edits, Text a, Text b, List <TextMarker> leftMarkers, List <TextMarker> rightMarkers, StringBuilder leftOut, StringBuilder rightOut)
        {
            int curA   = 0;
            int offset = 0;

            foreach (var edit in edits)
            {
                for (int i = curA; i < edit.GetBeginA(); i++)
                {
                    WriteContextLine(a, i, leftOut, rightOut);
                    offset++;
                }

                _markers.Add(new DiffMarker(
                                 GetMarkerType(edit.GetType()),
                                 offset,
                                 Math.Max(edit.GetLengthA(), edit.GetLengthB()),
                                 edit.GetLengthA(),
                                 edit.GetLengthB()
                                 ));

                for (curA = edit.GetBeginA(); curA < edit.GetEndA(); curA++)
                {
                    WriteLine(leftOut, leftMarkers, a, curA, edit.GetType());
                }

                for (int curB = edit.GetBeginB(); curB < edit.GetEndB(); curB++)
                {
                    WriteLine(rightOut, rightMarkers, b, curB, edit.GetType());
                    offset++;
                }

                for (int i = edit.GetLengthB() - edit.GetLengthA(); i > 0; i--)
                {
                    WriteEmptyLine(leftOut, leftMarkers);
                }

                for (int i = edit.GetLengthA() - edit.GetLengthB(); i > 0; i--)
                {
                    WriteEmptyLine(rightOut, rightMarkers);
                    offset++;
                }
            }

            for (; curA < a.Size(); curA++)
            {
                WriteContextLine(a, curA, leftOut, rightOut);
                offset++;
            }
        }
예제 #3
0
        private void Format(EditList edits, Text a, Text b, List<TextMarker> leftMarkers, List<TextMarker> rightMarkers, StringBuilder leftOut, StringBuilder rightOut)
        {
            int curA = 0;
            int offset = 0;

            foreach (var edit in edits)
            {
                for (int i = curA; i < edit.GetBeginA(); i++)
                {
                    WriteContextLine(a, i, leftOut, rightOut);
                    offset++;
                }

                _markers.Add(new DiffMarker(
                    GetMarkerType(edit.GetType()),
                    offset,
                    Math.Max(edit.GetLengthA(), edit.GetLengthB()),
                    edit.GetLengthA(),
                    edit.GetLengthB()
                ));

                for (curA = edit.GetBeginA(); curA < edit.GetEndA(); curA++)
                {
                    WriteLine(leftOut, leftMarkers, a, curA, edit.GetType());
                }

                for (int curB = edit.GetBeginB(); curB < edit.GetEndB(); curB++)
                {
                    WriteLine(rightOut, rightMarkers, b, curB, edit.GetType());
                    offset++;
                }

                for (int i = edit.GetLengthB() - edit.GetLengthA(); i > 0; i--)
                {
                    WriteEmptyLine(leftOut, leftMarkers);
                }

                for (int i = edit.GetLengthA() - edit.GetLengthB(); i > 0; i--)
                {
                    WriteEmptyLine(rightOut, rightMarkers);
                    offset++;
                }
            }

            for (; curA < a.Size(); curA++)
            {
                WriteContextLine(a, curA, leftOut, rightOut);
                offset++;
            }
        }
예제 #4
0
 private bool IsEndOfLineMissing(Text text, int line)
 {
     return(line + 1 == text.Size() && text.IsMissingNewlineAtEnd());
 }
예제 #5
0
 private bool IsEndOfLineMissing(Text text, int line)
 {
     return line + 1 == text.Size() && text.IsMissingNewlineAtEnd();
 }
예제 #6
0
 private void Format(EditList edits, Text a, Text b)
 {
     for (int curIdx = 0; curIdx < edits.Count; )
     {
         Edit curEdit = edits[curIdx];
         int endIdx = FindCombinedEnd(edits, curIdx);
         Edit endEdit = edits[endIdx];
         int aCur = Math.Max(0, curEdit.GetBeginA() - Context);
         int bCur = Math.Max(0, curEdit.GetBeginB() - Context);
         int aEnd = Math.Min(a.Size(), endEdit.GetEndA() + Context);
         int bEnd = Math.Min(b.Size(), endEdit.GetEndB() + Context);
         WriteHunkHeader(aCur, aEnd, bCur, bEnd);
         while (aCur < aEnd || bCur < bEnd)
         {
             if (aCur < curEdit.GetBeginA() || endIdx + 1 < curIdx)
             {
                 WriteContextLine(a, aCur);
                 if (IsEndOfLineMissing(a, aCur))
                 {
                     _out.Append(NoNewLine);
                 }
                 aCur++;
                 bCur++;
             }
             else
             {
                 if (aCur < curEdit.GetEndA())
                 {
                     WriteRemovedLine(a, aCur);
                     if (IsEndOfLineMissing(a, aCur))
                     {
                         _out.Append(NoNewLine);
                     }
                     aCur++;
                 }
                 else
                 {
                     if (bCur < curEdit.GetEndB())
                     {
                         WriteAddedLine(b, bCur);
                         if (IsEndOfLineMissing(b, bCur))
                         {
                             _out.Append(NoNewLine);
                         }
                         bCur++;
                     }
                 }
             }
             if (End(curEdit, aCur, bCur) && ++curIdx < edits.Count)
             {
                 curEdit = edits[curIdx];
             }
         }
     }
 }