public bool TryTriggerQuickInfo() { if (documentViewer.TextView.IsClosed) { return(false); } var caretPos = documentViewer.TextView.Caret.Position; if (caretPos.VirtualSpaces > 0) { return(false); } var pos = caretPos.BufferPosition; var spanData = GetReference(pos.Position, true); if (spanData == null) { return(false); } var info = spanData.Value; var snapshot = pos.Snapshot; if (info.Span.End > snapshot.Length) { return(false); } var triggerPoint = snapshot.CreateTrackingPoint(info.Span.Start, PointTrackingMode.Negative); var session = quickInfoBroker.TriggerQuickInfo(documentViewer.TextView, triggerPoint, trackMouse: false); return(session?.IsDismissed == false); }
private void RetriggerQuickInfoSession(IQuickInfoSession session) { if (session != null && !session.IsDismissed) { session.Dismiss(); } _lastPosition = -1; IQuickInfoBroker broker = EditorShell.Current.ExportProvider.GetExport <IQuickInfoBroker>().Value; broker.TriggerQuickInfo(session.TextView, session.GetTriggerPoint(session.TextView.TextBuffer), session.TrackMouse); }
private void RetriggerQuickInfoSession(IQuickInfoSession session, string packageName) { if (session != null && !session.IsDismissed) { session.Dismiss(); } _lastPosition = -1; _packageName = packageName; if (packageName != null) { IQuickInfoBroker broker = _coreShell.GetService <IQuickInfoBroker>(); broker.TriggerQuickInfo(session.TextView, session.GetTriggerPoint(session.TextView.TextBuffer), session.TrackMouse); } }
private void RetriggerQuickInfoSession(IQuickInfoSession session, string packageName) { if (session != null && !session.IsDismissed) { session.Dismiss(); } _lastPosition = -1; _packageName = packageName; if (packageName != null) { IQuickInfoBroker broker = _catalog.ExportProvider.GetExport <IQuickInfoBroker>().Value; broker.TriggerQuickInfo(session.TextView, session.GetTriggerPoint(session.TextView.TextBuffer), session.TrackMouse); } }
public void StartQuickInfo(int offset) { if (!m_broker.IsQuickInfoActive(m_view)) { if (offset >= m_view.TextSnapshot.Length) { return; } ITrackingPoint triggerPoint = m_view.TextSnapshot.CreateTrackingPoint(offset, PointTrackingMode.Positive); var session = m_broker.TriggerQuickInfo(m_view, triggerPoint, true); if (session != null) { session.Start(); } } }
private void OnViewMouseHover(object sender, MouseHoverEventArgs e) { //find the mouse position by mapping down to the subject buffer var point = _textView.BufferGraph.MapDownToFirstMatch (new SnapshotPoint(_textView.TextSnapshot, e.Position), PointTrackingMode.Positive, snapshot => _subjectBuffers.Contains(snapshot.TextBuffer), PositionAffinity.Predecessor); if (point != null) { var triggerPoint = point.Value.Snapshot.CreateTrackingPoint(point.Value.Position, PointTrackingMode.Positive); if (!_quickInfoBroker.IsQuickInfoActive(_textView) && !_signatureHelpBroker.IsSignatureHelpActive(_textView)) { _quickInfoBroker.TriggerQuickInfo(_textView, triggerPoint, true); } } }
void TextView_MouseHover(object sender, MouseHoverEventArgs e) { var pos = e.TextPosition.GetPoint(textView.TextBuffer, PositionAffinity.Successor); if (pos == null) { return; } var sessions = quickInfoBroker.GetSessions(textView); foreach (var session in sessions) { if (Intersects(session.ApplicableToSpan, pos.Value)) { return; } if ((session as IQuickInfoSession2)?.HasInteractiveContent == true) { foreach (var o in session.QuickInfoContent) { var io = o as IInteractiveQuickInfoContent; if (io == null) { continue; } if (io.KeepQuickInfoOpen || io.IsMouseOverAggregated) { return; } } } } foreach (var session in sessions) { session.Dismiss(); } var triggerPoint = pos.Value.Snapshot.CreateTrackingPoint(pos.Value.Position, PointTrackingMode.Negative); quickInfoBroker.TriggerQuickInfo(textView, triggerPoint, trackMouse: true); }
public void TriggerQuickInfoSession(IEditorView view) => _quickInfoBroker.TriggerQuickInfo(view.As <ITextView>());