public static SnapshotSpan Convert(this CSharpSpan span, ITextSnapshot snapshot) { Contract.Requires(snapshot != null); var startIndex = snapshot.GetPositionFromLineColumn(span.Start.Line, span.Start.Character); var endIndex = snapshot.GetPositionFromLineColumn(span.End.Line, span.End.Character); // still need to do range check: have seen this be too long var len = endIndex - startIndex; var maxLen = snapshot.Length - startIndex; var usableLength = len > maxLen ? maxLen : len; // min(len,maxLen) return new SnapshotSpan(snapshot, startIndex, usableLength); }
public static SnapshotSpan Convert(this CSharpSpan span, ITextSnapshot snapshot) { Contract.Requires(snapshot != null); var startIndex = snapshot.GetPositionFromLineColumn(span.Start.Line, span.Start.Character); var endIndex = snapshot.GetPositionFromLineColumn(span.End.Line, span.End.Character); // still need to do range check: have seen this be too long var len = endIndex - startIndex; var maxLen = snapshot.Length - startIndex; var usableLength = len > maxLen ? maxLen : len; // min(len,maxLen) return(new SnapshotSpan(snapshot, startIndex, usableLength)); }