void (@NotNull MouseEvent event) { Component component = event.getComponent(); Runnable loadingRemover = component instanceof EditorGutterComponentEx ? ((EditorGutterComponentEx)component).setLoadingIconForCurrentGutterMark() : null; AppExecutorUtil.getAppExecutorService().execute(ClientId.decorateRunnable(() -> { ProgressManager.getInstance().computePrioritized(() -> { ProgressManager.getInstance().executeProcessUnderProgress(() -> { Ref<List<PsiElement>> targets = Ref.create(); boolean success = runInReadActionWithWriteActionPriority(() -> targets.set(getTargetElements())); ApplicationManager.getApplication().invokeLater(() -> { if (loadingRemover != null) { loadingRemover.run(); } if (success) { navigateTargets(event, targets.get()); } }); }, new EmptyProgressIndicator()); return null; }); })); }