/// <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); }
/// <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); }