Alsing.SourceCode.SyntaxDocumentParsers.DefaultParser.MakeSame C# (CSharp) Method

MakeSame() private method

private MakeSame ( int RowIndex ) : void
RowIndex int
return void
        private void MakeSame(int RowIndex)
        {
            Row row = Document[RowIndex];

            //copy back the old segments to this line...
            Span seg = row.endSpan;
            Span seg2 = Document[RowIndex + 1].startSpan;
            while (seg != null)
            {
                foreach (Word w in row)
                {
                    if (w.Span == seg)
                    {
                        if (w.Span.StartWord == w)
                            seg2.StartWord = w;

                        if (w.Span.EndWord == w)
                            seg2.EndWord = w;

                        w.Span = seg2;
                    }
                }

                if (seg == row.startSpan)
                    row.startSpan = seg2;

                if (seg == row.endSpan)
                    row.endSpan = seg2;


                if (row.startSpans.IndexOf(seg) >= 0)
                    row.startSpans[row.startSpans.IndexOf(seg)] = seg2;

                if (row.endSpans.IndexOf(seg) >= 0)
                    row.endSpans[row.endSpans.IndexOf(seg)] = seg2;

                seg = seg.Parent;
                seg2 = seg2.Parent;
            }
            row.SetExpansionSegment();
        }