internal static SnapshotSpan CreateSpanFromSwix(this ITextSnapshot snapshot, int swixLine, int swixColumnStart, int?swixColumnEnd) { int lineNumber = swixLine; int columnStart = swixColumnStart; int columnEnd; if (swixColumnEnd.HasValue) { columnEnd = swixColumnEnd.Value; } else { // If there's no end value, we have to check for column -1 and end-of-file conditions. bool setColumnStart = false; if (columnStart == -1 || lineNumber >= snapshot.LineCount) { lineNumber = Math.Min(lineNumber - 1, snapshot.LineCount - 1); setColumnStart = true; } ITextSnapshotLine line = snapshot.GetLineFromLineNumber(lineNumber); if (setColumnStart) { columnStart = line.Length - 1; } columnEnd = line.Length; } return(snapshot.CreateSpan(lineNumber, columnStart, columnEnd)); }
internal static ITrackingSpan CreateTrackingSpan(this ITextSnapshot snapshot, IRangeProvider rangeProvider, SpanTrackingMode trackingMode = SpanTrackingMode.EdgeExclusive) { SnapshotSpan span = snapshot.CreateSpan(rangeProvider); return(snapshot.CreateTrackingSpan(span, trackingMode)); }
internal static ITrackingSpan CreateTrackingSpan(this ITextSnapshot snapshot, CompilerMessage message, SpanTrackingMode trackingMode = SpanTrackingMode.EdgeExclusive) { SnapshotSpan span = snapshot.CreateSpan(message); return(snapshot.CreateTrackingSpan(span, trackingMode)); }
internal static SnapshotSpan CreateSpan(this ITextSnapshot snapshot, IRangeProvider rangeProvider) { return(snapshot.CreateSpan(rangeProvider.Range)); }
internal static SnapshotSpan CreateSpan(this ITextSnapshot snapshot, CompilerMessage message) { return(snapshot.CreateSpan(message.Range)); }