protected override void Execute(IDataContext dataContext, IEnumerable <IRegisteredComponentsContextSearch> searches, INavigationExecutionHost host) { List <RegisteredComponentsSearchRequest> requests = searches.SelectNotNull(item => item.GetRegisteredComponentsRequest(dataContext)).ToList(); ITextControl textControl = dataContext.GetData(JetBrains.TextControl.DataContext.DataConstants.TEXT_CONTROL); if (textControl != null && requests.Any()) { RegisteredComponentsSearchRequest requestToExecute = requests.First(); ICollection <IOccurence> occurences = requestToExecute.Search(); if (occurences.IsEmpty()) { Shell.Instance.Components.Tooltips().ShowAtCaret(EternalLifetime.Instance, NoRegisteredTypesFound, textControl, locks, Shell.Instance.GetComponent <IActionManager>()); } else { Func <SearchRegisteredComponentsDescriptor> descriptorBuilder = () => new SearchRegisteredComponentsDescriptor(requestToExecute, occurences); host.ShowResultsPopupMenu(dataContext, occurences, descriptorBuilder, null, true, requestToExecute.Title); } } }