Microsoft.Html.Core.Tree.Nodes.ElementNode.ShiftStartingFrom C# (CSharp) Method

ShiftStartingFrom() public method

Shifts node components that are located at or beyond given start point by the specified range
public ShiftStartingFrom ( int start, int offset ) : void
start int Start point
offset int Offset to shift by
return void
        public override void ShiftStartingFrom(int start, int offset) {
            // short-circuit in the case where the shift starts after our end
            if (start > End)
                return;

            // if tag is not closed and change is right at the end,
            // e need to grow start tag rather than element inner range

            if (StartTag.Contains(start) || StartTag.Start >= start || (!StartTag.IsClosed && start == StartTag.End))
                StartTag.ShiftStartingFrom(start, offset);

            if (EndTag != null && (EndTag.Contains(start) || EndTag.Start >= start))
                EndTag.ShiftStartingFrom(start, offset);

            if (OrphanedEndTagsCollection != null)
                OrphanedEndTagsCollection.ShiftStartingFrom(start, offset);

            if (VirtualEnd >= start)
                VirtualEnd = Math.Max(start, VirtualEnd + offset);

            int count = Children.Count;
            for (int i = 0; i < count; i++) {
                Children[i].ShiftStartingFrom(start, offset);
            }
        }
        #endregion