コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <inheritdoc/>
        public ITrackingPoint Show(ITextView textView, DiffSide side, int lineNumber)
        {
            var lineAndtrackingPoint = GetLineAndTrackingPoint(textView, side, lineNumber);
            var line          = lineAndtrackingPoint.Item1;
            var trackingPoint = lineAndtrackingPoint.Item2;
            var options       = new PeekSessionCreationOptions(
                textView,
                relationship,
                trackingPoint,
                defaultHeight: 0);

            ExpandCollapsedRegions(textView, line.Extent);

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

            item?.Closed.Take(1).Subscribe(_ => session.Dismiss());

            return(trackingPoint);
        }
コード例 #3
0
        /// <inheritdoc/>
        public ITrackingPoint Show(ITextView textView, ShowInlineCommentTag tag)
        {
            Guard.ArgumentNotNull(textView, nameof(textView));
            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);

            peekBroker.TriggerPeekSession(options);

            return(trackingPoint);
        }
コード例 #4
0
        /// <inheritdoc/>
        public ITrackingPoint Show(ITextView textView, ShowInlineCommentTag tag)
        {
            Guard.ArgumentNotNull(textView, nameof(textView));
            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();
            item?.ViewModel.Close.Take(1).Subscribe(_ => session.Dismiss());

            return trackingPoint;
        }
コード例 #5
0
        private void HandlePeekHelp()
        {
            PeekSessionCreationOptions options = new PeekSessionCreationOptions(_textView, PeekHelpRelationship.Instance.Name);

            if (_textView.Roles.Contains(PredefinedTextViewRoles.EmbeddedPeekTextView))
            {
                ITextView containingTextView;
                if (_textView.Properties.TryGetProperty("PeekContainingTextView", out containingTextView) && containingTextView != null)
                {
                    IPeekSession session = _peekBroker.GetPeekSession(containingTextView);
                    if (session != null)
                    {
                        _peekBroker.TriggerNestedPeekSession(options, session);
                    }
                }
            }
            else
            {
                _peekBroker.TriggerPeekSession(options);
            }

            _telemetrySession.PostEvent("VS/PPT-PeekHelp/PeekF1CommandInvoked");
        }
コード例 #6
0
 public IPeekSession TriggerPeekSession(PeekSessionCreationOptions options)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
 public void TriggerNestedPeekSession(PeekSessionCreationOptions options, IPeekSession containingSession)
 {
     throw new NotImplementedException();
 }
コード例 #8
0
 public bool CanTriggerPeekSession(PeekSessionCreationOptions options, Predicate <string> isStandaloneFilePredicate)
 {
     throw new NotImplementedException();
 }