public IEnumerable <ITagSpan <T> > GetTags(NormalizedSnapshotSpanCollection spans) { foreach (var breakpointTag in breakpointManager.GetBreakpoints(spans[0].Snapshot)) { var span = breakpointTag.Span; if (spans.IntersectsWith(span)) { var breakpoint = breakpointTag.Breakpoint; var status = DebuggingService.GetBreakpointStatus(breakpoint); if (breakpoint.Enabled) { if (status == BreakEventStatus.Bound || status == BreakEventStatus.Disconnected) { yield return(new TagSpan <T> (span, tag)); } else { yield return(new TagSpan <T> (span, invalid)); } } else { yield return(new TagSpan <T> (span, disabled)); } } } }
public IEnumerable <ITagSpan <BaseBreakpointGlyphTag> > GetTags(NormalizedSnapshotSpanCollection spans) { foreach (var breakpointTag in breakpointManager.GetBreakpoints(spans[0].Snapshot)) { var span = breakpointTag.Span; if (spans.IntersectsWith(span)) { var breakpoint = breakpointTag.Breakpoint; bool tracepoint = (breakpoint.HitAction & HitAction.Break) == HitAction.None; if (breakpoint.Enabled) { var status = DebuggingService.GetBreakpointStatus(breakpoint); if (status == BreakEventStatus.Bound || status == BreakEventStatus.Disconnected) { if (tracepoint) { yield return(new TagSpan <TracepointGlyphTag> (span, new TracepointGlyphTag(breakpoint))); } else { yield return(new TagSpan <BreakpointGlyphTag> (span, new BreakpointGlyphTag(breakpoint))); } } else { if (tracepoint) { yield return(new TagSpan <TracepointInvalidGlyphTag> (span, new TracepointInvalidGlyphTag(breakpoint))); } else { yield return(new TagSpan <BreakpointInvalidGlyphTag> (span, new BreakpointInvalidGlyphTag(breakpoint))); } } } else { if (tracepoint) { yield return(new TagSpan <TracepointDisabledGlyphTag> (span, new TracepointDisabledGlyphTag(breakpoint))); } else { yield return(new TagSpan <BreakpointDisabledGlyphTag> (span, new BreakpointDisabledGlyphTag(breakpoint))); } } } } }