Exemple #1
0
        public IWpfTextView CreateTextView(IEnumerable <SnapshotSpan> lines)
        {
            var parentView = TextViewConnectionListener.GetTextViewDataForBuffer(lines.First().Snapshot.TextBuffer).LastActiveView;

            var buffer = ProjectionFactory.CreateProjectionBuffer(
                null,
                lines.SelectMany(s => new object[] { Environment.NewLine }.Concat(
                                     // Use the text from the outer ProjectionBuffer, which can
                                     // include language services from other projected buffers.
                                     // This makes the tooltip include syntax highlighting that
                                     // does not exist in the innermost Markdown buffer.
                                     parentView.BufferGraph
                                     .MapUpToBuffer(s, SpanTrackingMode.EdgeExclusive, parentView.TextBuffer)
                                     .Select(s2 => s2.Snapshot.CreateTrackingSpan(s, SpanTrackingMode.EdgeExclusive))
                                     ))
                .Skip(1)        // Skip first newline
                .ToList(),
                ProjectionBufferOptions.None
                );
            var view = TextEditorFactory.CreateTextView(buffer, TextEditorFactory.NoRoles);

            view.Background = Brushes.Transparent;
            SizeToFit(view);
            return(view);
        }