protected Icon getInformativeIcon(@NotNull Project project, @NotNull RunnerAndConfigurationSettings selectedConfiguration,
                                    @NotNull AnActionEvent e) {
    RunConfiguration configuration = selectedConfiguration.getConfiguration();
    if (configuration instanceof RunnerIconProvider provider) {
      Icon icon = provider.getExecutorIcon(configuration, myExecutor);
      if (icon != null) {
        return icon;
      }
    }

    List<RunContentDescriptor> runningDescriptors = getRunningDescriptors(project, selectedConfiguration);

    if (needRerunPresentation(configuration, runningDescriptors)) {
      if (ExperimentalUI.isNewUI() && myExecutor.getIcon() != myExecutor.getRerunIcon()) {
        return myExecutor.getRerunIcon();
      }
      if (DefaultRunExecutor.EXECUTOR_ID.equals(myExecutor.getId())) {
        return AllIcons.Actions.Restart;
      }
    }
    if (runningDescriptors.isEmpty()) {
      return myExecutor.getIcon();
    }

    if (runningDescriptors.size() == 1) {
      return ExecutionUtil.getLiveIndicator(myExecutor.getIcon());
    }
    else {
      return IconUtil.addText(myExecutor.getIcon(), RunToolbarPopupKt.runCounterToString(e, runningDescriptors.size()));
    }
  }
protected Icon getInformativeIcon(@NotNull Project project, @NotNull RunnerAndConfigurationSettings selectedConfiguration,
                                    @NotNull AnActionEvent e)