Example #1
0
        public void AugmentPeekSession(IPeekSession session, IList <IPeekableItem> peekableItems)
        {
            if (session == null)
            {
                throw new ArgumentNullException("session");
            }
            if (peekableItems == null)
            {
                throw new ArgumentNullException("peekableItems");
            }
            if (session.RelationshipName == PredefinedPeekRelationships.Definitions.Name)
            {
                ITextDocument document;
                SnapshotPoint?triggerPoint = session.GetTriggerPoint(this._buffer.CurrentSnapshot);
                if (triggerPoint.HasValue && this.TryGetTextDocument(_buffer, out document))
                {
                    if (!session.TextView.TextBuffer.Properties.ContainsProperty(typeof(ITextDocument)))
                    {
                        session.TextView.TextBuffer.Properties.AddProperty(typeof(ITextDocument), document);
                    }

                    peekableItems.Add(new PeekableItem(EditFilter.GetLocations(session.TextView, EditFilter.GetLocationOptions.Definitions), _factory));
                }
            }
        }