public void AugmentQuickInfoSession(IQuickInfoSession session, IList <object> quickInfoContent, out ITrackingSpan applicableToSpan) { applicableToSpan = null; object eventHookupValue; if (quickInfoContent.Count != 0 || session.Properties.TryGetProperty(QuickInfoUtilities.EventHookupKey, out eventHookupValue)) { // No quickinfo if it's the event hookup popup. return; } var position = session.GetTriggerPoint(_subjectBuffer.CurrentSnapshot); if (position.HasValue) { var textView = session.TextView; var args = new InvokeQuickInfoCommandArgs(textView, _subjectBuffer); Controller controller; if (_commandHandler.TryGetController(args, out controller)) { controller.InvokeQuickInfo(position.Value, trackMouse: true, augmentSession: session); } } }
void ICommandHandler <InvokeQuickInfoCommandArgs> .ExecuteCommand(InvokeQuickInfoCommandArgs args, Action nextHandler) { var caretPoint = args.TextView.GetCaretPoint(args.SubjectBuffer); if (caretPoint.HasValue) { // Invoking QuickInfo from the command, so there's no session yet. InvokeQuickInfo(caretPoint.Value.Position, trackMouse: false, augmentSession: null); } }
public void AugmentQuickInfoSession(IQuickInfoSession session, IList <object> quickInfoContent, out ITrackingSpan applicableToSpan) { applicableToSpan = null; if (quickInfoContent.Count != 0) { return; } var position = session.GetTriggerPoint(_subjectBuffer.CurrentSnapshot); if (position.HasValue) { var textView = session.TextView; var args = new InvokeQuickInfoCommandArgs(textView, _subjectBuffer); if (_commandHandler.TryGetController(args, out var controller)) { controller.InvokeQuickInfo(position.Value, trackMouse: true, augmentSession: session); } } }
CommandState ICommandHandler <InvokeQuickInfoCommandArgs> .GetCommandState(InvokeQuickInfoCommandArgs args, Func <CommandState> nextHandler) { AssertIsForeground(); return(nextHandler()); }