public bool TryGetSpan(ActiveStatementId id, SourceText source, out TextSpan span) { TrackingSession session = _session; if (session == null) { span = default(TextSpan); return false; } return session.TryGetSpan(id, source, out span); }
public bool TryGetSpan(ActiveStatementId id, SourceText source, out TextSpan span) { ITrackingSpan[] documentSpans; lock (_trackingSpans) { if (_trackingSpans.TryGetValue(id.DocumentId, out documentSpans) && documentSpans != null) { var trackingSpan = documentSpans[id.Ordinal]; var snapshot = source.FindCorrespondingEditorTextSnapshot(); if (snapshot != null && snapshot.TextBuffer == trackingSpan.TextBuffer) { span = trackingSpan.GetSpan(snapshot).Span.ToTextSpan(); return true; } } } span = default(TextSpan); return false; }