private void ShowCalls(CallHierarchyExplorerViewManager manager, Func <CallHierarchyFindResult, bool> filter, DeclaredElementInstance <IClrDeclaredElement> start, ShowCallsType callType) { var text = Text; switch (callType) { case ShowCallsType.INCOMING: text += " to " + start.Element.ShortName; manager.ShowIncoming(start, text, filter); break; case ShowCallsType.OUTGOING: text += " from " + start.Element.ShortName; manager.ShowOutgoing(start, text, filter); break; default: throw new ArgumentOutOfRangeException(); } }
public void Execute(ISolution solution, ITextControl textControl) { solution.Locks.AssertReadAccessAllowed(); var text = Text; if (!UnityCallGraphUtil.IsCallGraphReady(solution)) { BulbActionUtils.ShowTooltip(text + TooltipSuffix, textControl); return; } if (!solution.GetPsiServices().Caches.WaitForCaches(text)) { return; } var manager = CallHierarchyExplorerViewManager.GetInstance(solution); var filter = GetFilter(solution); var start = GetStartElement(); var callType = CallsType; ShowCalls(manager, filter, start, callType); }