public virtual void Clear() { OldRange = TextRange.EmptyRange; NewRange = TextRange.EmptyRange; OldText = null; NewText = null; }
public CharacterStream(ITextProvider textProvider, ITextRange range) { _text = textProvider; int end = Math.Min(_text.Length, range.End); _range = TextRange.FromBounds(range.Start, end); Position = _range.Start; _currentChar = _text[_range.Start]; }
/// <summary> /// Determines if range contains all ranges in a collection /// </summary> public static bool Contains(ITextRange range, IEnumerable<ITextRange> ranges) { var textRange = new TextRange(range); return textRange.Contains(ranges); }
/// <summary> /// Determines if range contains another range /// </summary> public static bool Contains(ITextRange range, ITextRange other) { var textRange = new TextRange(range); return textRange.Contains(other); }
public void Combine(TextChange other) { if (other.IsEmpty()) return; if (OldRange == TextRange.EmptyRange || NewRange == TextRange.EmptyRange) { OldRange = other.OldRange; NewRange = other.NewRange; } else { int oldStart = Math.Min(other.OldRange.Start, this.OldRange.Start); int oldEnd = Math.Max(other.OldRange.End, this.OldRange.End); int newStart = Math.Min(other.NewRange.Start, this.NewRange.Start); int newEnd = Math.Max(other.NewRange.End, this.NewRange.End); this.OldRange = new TextRange(oldStart, oldEnd); this.NewRange = new TextRange(newStart, newEnd); } Version = Math.Max(this.Version, other.Version); }
public TextChange(int start, int oldLength, int newLength) : this() { OldRange = new TextRange(start, start + oldLength); NewRange = new TextRange(start, start + newLength); }
public IList <T> ItemsInRange(int start) { return(_collection.ItemsInRange(TextRange.FromBounds(start, start))); }
public CharacterStream(ITextProvider textProvider) : this(textProvider, TextRange.FromBounds(0, textProvider.Length)) { }