void (@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) { String featureId = getFeatureUsedKey(); if (featureId != null) { FeatureUsageTracker.getInstance().triggerFeatureUsed(featureId); } try { GotoData gotoData = getSourceAndTargetElements(editor, file); Consumer<JBPopup> showPopupProcedure = popup -> { if (!editor.isDisposed()) { popup.showInBestPositionFor(editor); } }; if (gotoData != null) { show(project, editor, file, gotoData, showPopupProcedure); } else { chooseFromAmbiguousSources(editor, file, data -> show(project, editor, file, data, showPopupProcedure)); } } catch (IndexNotReadyException e) { DumbService.getInstance(project).showDumbModeNotificationForFunctionality( CodeInsightBundle.message("message.navigation.is.not.available.here.during.index.update"), DumbModeBlockedFunctionality.GotoTarget); } }