public IEnumerable <ITagSpan <IOutliningRegionTag> > GetTags(NormalizedSnapshotSpanCollection spans) { if (this.buffer.EditInProgress || spans.Count == 0) { yield break; } List <Region> currentRegions = this.regions; ITextSnapshot currentSnapshot = this.snapshot; SnapshotSpan entire = new SnapshotSpan(spans[0].Start, spans[spans.Count - 1].End) .TranslateTo(currentSnapshot, SpanTrackingMode.EdgeExclusive); int startLineNumber = entire.Start.GetContainingLine().LineNumber; int endLineNumber = entire.End.GetContainingLine().LineNumber; foreach (var region in currentRegions) { if (region.StartLine <= endLineNumber && region.EndLine >= startLineNumber) { var startLine = currentSnapshot.GetLineFromLineNumber(region.StartLine); var endLine = currentSnapshot.GetLineFromLineNumber(region.EndLine); string ellipsis = HurunaHelper.Ellipsis; string hoverText = HurunaHelper.GetHoverText(currentSnapshot, region); yield return(new TagSpan <IOutliningRegionTag>( new SnapshotSpan(startLine.Start + region.StartOffset, endLine.End), new OutliningRegionTag(region.Type == RegionType.RT_Comment, true, ellipsis, hoverText))); } } }
public void Invoke(CancellationToken cancellationToken) { string txt; if (HurunaHelper.GetCxxUndecName(m_span.GetText().Trim(), out txt)) { Clipboard.SetData(DataFormats.UnicodeText, txt); } }
public override UIElement GetDisplay() { if (m_decname == null) { if (!HurunaHelper.GetCxxUndecName(m_span.GetText(), out m_decname)) { m_decname = string.Empty; } } return(new TextBlock() { Text = m_decname, Background = Brushes.AliceBlue }); }
public Task <object> GetPreviewAsync(CancellationToken cancellationToken) { var textBlock = new TextBlock(); textBlock.Padding = new Thickness(5); string txt; if (!HurunaHelper.GetCxxUndecName(m_span.GetText().Trim(), out txt)) { txt = "[Invaid Input]"; } textBlock.Text = txt; return(Task.FromResult <object>(textBlock)); }