public override string GetText(Span span) { if (span.End > this.Length) { throw new ArgumentOutOfRangeException("span"); } if (span.End <= _left.Length) { return(_left.GetText(span)); } else if (span.Start >= _left.Length) { return(_right.GetText(new Span(span.Start - _left.Length, span.Length))); } else { char[] result = new char[span.Length]; int leftLength = _left.Length - span.Start; _left.CopyTo(span.Start, result, 0, leftLength); _right.CopyTo(0, result, leftLength, span.Length - leftLength); return(new string(result)); } }
internal static ChangeString CreateChangeString(StringRebuilder content) { if (content.Length == 0) { return(ChangeString.EmptyChangeString); } else if (content.Length <= ChangeString.LiteralStringThreshold) { return(new LiteralChangeString(content.GetText(new Span(0, content.Length)))); } else { return(new ReferenceChangeString(content)); } }
public string GetOldText(Span span) { return(_oldText.GetText(span)); }