/// <inheritdoc/>
        public ITrackingPoint Show(ITextView textView, AddInlineCommentTag tag)
        {
            Guard.ArgumentNotNull(tag, nameof(tag));

            var lineAndtrackingPoint = GetLineAndTrackingPoint(textView, tag);
            var line          = lineAndtrackingPoint.Item1;
            var trackingPoint = lineAndtrackingPoint.Item2;
            var options       = new PeekSessionCreationOptions(
                textView,
                InlineCommentPeekRelationship.Instance.Name,
                trackingPoint,
                defaultHeight: 0);

            ExpandCollapsedRegions(textView, line.Extent);

            var session = peekBroker.TriggerPeekSession(options);
            var item    = session.PeekableItems.OfType <InlineCommentPeekableItem>().FirstOrDefault();

            if (item != null)
            {
                var placeholder = item.ViewModel.Thread.Comments.Last();
                placeholder.CancelEdit.Take(1).Subscribe(_ => session.Dismiss());
            }

            return(trackingPoint);
        }
Esempio n. 2
0
        /// <inheritdoc/>
        public ITrackingPoint Show(ITextView textView, AddInlineCommentTag tag)
        {
            Guard.ArgumentNotNull(tag, nameof(tag));

            var line          = textView.TextSnapshot.GetLineFromLineNumber(tag.LineNumber);
            var trackingPoint = textView.TextSnapshot.CreateTrackingPoint(line.Start.Position, PointTrackingMode.Positive);

            ExpandCollapsedRegions(textView, line.Extent);

            var session = peekBroker.TriggerPeekSession(textView, trackingPoint, InlineCommentPeekRelationship.Instance.Name);
            var item    = session.PeekableItems.OfType <InlineCommentPeekableItem>().FirstOrDefault();

            if (item != null)
            {
                var placeholder = item.ViewModel.Thread.Comments.Last();
                placeholder.CancelEdit.Take(1).Subscribe(_ => session.Dismiss());
            }

            return(trackingPoint);
        }