@Override
  public void actionPerformed(@NotNull AnActionEvent e) {
    final Project project = e.getData(CommonDataKeys.PROJECT);
    if (project == null) {
      return;
    }
    PsiDocumentManager.getInstance(project).commitAllDocuments();
    DataContext dataContext = e.getDataContext();
    SearchScope searchScope = FindUsagesOptions.findScopeByName(
      project, dataContext, FindSettings.getInstance().getDefaultScopeName()
    );
    Editor editor = e.getData(CommonDataKeys.EDITOR);
    JBPopupFactory popupFactory = JBPopupFactory.getInstance();
    RelativePoint popupLocation = editor != null
                                  ? popupFactory.guessBestPopupLocation(editor)
                                  : popupFactory.guessBestPopupLocation(dataContext);
    ReadAction.nonBlocking(() -> allTargets(dataContext))
      .expireWith(project)
      .finishOnUiThread(ModalityState.nonModal(),
                        allTargets -> findShowUsages(project, editor, popupLocation, allTargets, FindBundle.message("find.usages.ambiguous.title"),
        new UsageVariantHandler() {

          @Override
          public void handleTarget(@NotNull SearchTarget target) {
            findUsages(toShowDialog(), project, searchScope, target);
          }

          @Override
          public void handlePsi(@NotNull PsiElement element) {
            startFindUsages(element);
          }
        }
      ))
      .submit(AppExecutorUtil.getAppExecutorService());
  }
@Override
  public void actionPerformed(@NotNull AnActionEvent e)