private void runCurrentFile(@NotNull AnActionEvent e) {
    Project project = Objects.requireNonNull(e.getProject());
    List<RunnerAndConfigurationSettings> runConfigs = getRunCurrentFileActionStatus(e, true).myRunConfigs;
    if (runConfigs.isEmpty()) {
      return;
    }

    if (runConfigs.size() == 1) {
      doRunCurrentFile(project, runConfigs.get(0), e.getDataContext());
      return;
    }

    IPopupChooserBuilder<RunnerAndConfigurationSettings> builder = JBPopupFactory.getInstance()
      .createPopupChooserBuilder(runConfigs)
      .setRenderer(new DefaultListCellRenderer() {
        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
          RunnerAndConfigurationSettings runConfig = (RunnerAndConfigurationSettings)value;
          JLabel result = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
          result.setIcon(runConfig.getConfiguration().getIcon());
          result.setText(runConfig.getName());
          return result;
        }
      })
      .setItemChosenCallback(runConfig -> doRunCurrentFile(project, runConfig, e.getDataContext()));

    InputEvent inputEvent = e.getInputEvent();
    if (inputEvent instanceof MouseEvent) {
      builder.createPopup().showUnderneathOf(inputEvent.getComponent());
    }
    else {
      Editor editor = FileEditorManager.getInstance(project).getSelectedTextEditor();
      if (editor == null) {
        // Not expected to happen because we are running a file from the current editor.
        LOG.warn("Run Current File (" + runConfigs + "): getSelectedTextEditor() == null");
        return;
      }

      builder
        .setTitle(myExecutor.getActionName())
        .createPopup()
        .showInBestPositionFor(editor);
    }
  }
private void runCurrentFile(@NotNull AnActionEvent e)