List<RunnerAndConfigurationSettings> (@NotNull RunConfiguration runConfiguration) { Project project = runConfiguration.getProject(); if (project == null || !project.isInitialized()) { return Collections.emptyList(); } List<RunnerAndConfigurationSettings> configurations = new ArrayList<>(RunManagerImpl.getInstanceImpl(project).getAllSettings()); String executorId = DefaultRunExecutor.getRunExecutorInstance().getId(); for (Iterator<RunnerAndConfigurationSettings> iterator = configurations.iterator(); iterator.hasNext(); ) { RunnerAndConfigurationSettings settings = iterator.next(); if (settings.getConfiguration() == runConfiguration || !settings.getType().isManaged() || ProgramRunner.getRunner(executorId, settings.getConfiguration()) == null) { iterator.remove(); } } return configurations; }