Beispiel #1
0
        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)));
                }
            }
        }
Beispiel #2
0
        public void Invoke(CancellationToken cancellationToken)
        {
            string txt;

            if (HurunaHelper.GetCxxUndecName(m_span.GetText().Trim(), out txt))
            {
                Clipboard.SetData(DataFormats.UnicodeText, txt);
            }
        }
Beispiel #3
0
 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
     });
 }
Beispiel #4
0
        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));
        }