@Override
  public void executeCommand(@NotNull String shellCommand) throws IOException {
    String typedCommand = getTypedShellCommand();
    if (!typedCommand.isEmpty()) {
      throw new IOException("Cannot execute command when another command is typed: " + typedCommand); //NON-NLS
    }
    myCommandsToExecute.add(shellCommand);
    doWithTerminalStarter(terminalStarter -> {
      List<String> commands = new ArrayList<>();
      myCommandsToExecute.drainTo(commands);
      for (String command : commands) {
        TerminalUtil.sendCommandToExecute(command, terminalStarter);
      }
    });
  }
@Override
  public void executeCommand(@NotNull String shellCommand)