// Token: 0x0600624B RID: 25163 RVA: 0x001B8B74 File Offset: 0x001B6D74 internal void AddTextSegment(ITextPointer start, ITextPointer end) { Invariant.Assert(start != null, "Non-null start required to create segment."); Invariant.Assert(end != null, "Non-null end required to create segment."); TextSegment newSegment = TextAnchor.CreateNormalizedSegment(start, end); this.InsertSegment(newSegment); }
// Token: 0x06006251 RID: 25169 RVA: 0x001B8FC0 File Offset: 0x001B71C0 internal static TextAnchor TrimToIntersectionWith(TextAnchor anchor, ICollection <TextSegment> textSegments) { Invariant.Assert(anchor != null, "Anchor must not be null."); Invariant.Assert(textSegments != null, "TextSegments must not be null."); textSegments = TextAnchor.SortTextSegments(textSegments, true); TextSegment textSegment = TextSegment.Null; int num = 0; IEnumerator <TextSegment> enumerator = textSegments.GetEnumerator(); bool flag = enumerator.MoveNext(); while (num < anchor._segments.Count && flag) { bool condition; if (!textSegment.Equals(TextSegment.Null) && !textSegment.Equals(enumerator.Current)) { ITextPointer end = textSegment.End; TextSegment textSegment2 = enumerator.Current; condition = (end.CompareTo(textSegment2.Start) <= 0); } else { condition = true; } Invariant.Assert(condition, "TextSegments are overlapping or not ordered."); TextSegment textSegment3 = anchor._segments[num]; textSegment = enumerator.Current; if (textSegment3.Start.CompareTo(textSegment.End) >= 0) { flag = enumerator.MoveNext(); } else if (textSegment3.End.CompareTo(textSegment.Start) <= 0) { anchor._segments.RemoveAt(num); } else if (textSegment3.Start.CompareTo(textSegment.Start) < 0) { anchor._segments[num] = TextAnchor.CreateNormalizedSegment(textSegment.Start, textSegment3.End); } else { if (textSegment3.End.CompareTo(textSegment.End) > 0) { anchor._segments[num] = TextAnchor.CreateNormalizedSegment(textSegment3.Start, textSegment.End); anchor._segments.Insert(num + 1, TextAnchor.CreateNormalizedSegment(textSegment.End, textSegment3.End)); flag = enumerator.MoveNext(); } else if (textSegment3.End.CompareTo(textSegment.End) == 0) { flag = enumerator.MoveNext(); } num++; } } if (!flag && num < anchor._segments.Count) { anchor._segments.RemoveRange(num, anchor._segments.Count - num); } if (anchor._segments.Count == 0) { return(null); } return(anchor); }