mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ensute that RC level is set correctly on load
(cherry picked from commit a4d3f0947eba37fab477464e20d48dbb1588406d)
This commit is contained in:
@@ -155,13 +155,18 @@ abstract class RunManager {
|
||||
*/
|
||||
abstract fun getConfigurationTemplate(factory: ConfigurationFactory): RunnerAndConfigurationSettings
|
||||
|
||||
/**
|
||||
* Adds the specified run configuration to the list of run configurations.
|
||||
*/
|
||||
abstract fun addConfiguration(settings: RunnerAndConfigurationSettings)
|
||||
|
||||
/**
|
||||
* Adds the specified run configuration to the list of run configurations stored in the project.
|
||||
* @param settings the run configuration settings.
|
||||
* @param isShared true if the configuration is marked as shared (stored in the versioned part of the project files), false if it's local
|
||||
* * (stored in the workspace file).
|
||||
*/
|
||||
abstract fun addConfiguration(settings: RunnerAndConfigurationSettings, isShared: Boolean)
|
||||
abstract fun addConfiguration(settings: RunnerAndConfigurationSettings, isShawred: Boolean)
|
||||
|
||||
/**
|
||||
* Marks the specified run configuration as recently used (the temporary run configurations are deleted in LRU order).
|
||||
|
||||
@@ -41,10 +41,9 @@ public interface RunnerAndConfigurationSettings {
|
||||
/**
|
||||
* Returns the factory used to create the run configuration.
|
||||
*
|
||||
* @return the factory, or null if the settings object was loaded from disk and no plugin corresponding to the stored type of the run
|
||||
* configuration is loaded.
|
||||
* @return the factory
|
||||
*/
|
||||
@Nullable
|
||||
@NotNull
|
||||
ConfigurationFactory getFactory();
|
||||
|
||||
/**
|
||||
@@ -209,4 +208,6 @@ public interface RunnerAndConfigurationSettings {
|
||||
* @return the folder name, or null if the configuration is displayed on the top level.
|
||||
*/
|
||||
@Nullable String getFolderName();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ package com.intellij.execution;
|
||||
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -34,10 +35,10 @@ public abstract class RunManagerEx extends RunManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #setSelectedConfiguration(RunnerAndConfigurationSettings)} instead
|
||||
* @deprecated Use {@link #setSelectedConfiguration(RunnerAndConfigurationSettings)} instead
|
||||
*/
|
||||
@Deprecated
|
||||
public void setActiveConfiguration(@Nullable RunnerAndConfigurationSettings configuration) {
|
||||
public final void setActiveConfiguration(@Nullable RunnerAndConfigurationSettings configuration) {
|
||||
setSelectedConfiguration(configuration);
|
||||
}
|
||||
|
||||
@@ -46,18 +47,26 @@ public abstract class RunManagerEx extends RunManager {
|
||||
@NotNull
|
||||
public abstract RunManagerConfig getConfig();
|
||||
|
||||
public void addConfiguration(@NotNull RunnerAndConfigurationSettings settings) {
|
||||
addConfiguration(settings, settings.isShared(), null, false);
|
||||
}
|
||||
|
||||
public void addConfiguration(@NotNull RunnerAndConfigurationSettings settings, boolean isShared) {
|
||||
addConfiguration(settings, isShared, null, false);
|
||||
if (isShared) {
|
||||
((RunnerAndConfigurationSettingsImpl)settings).setLevel(RunnerAndConfigurationSettingsImpl.Level.PROJECT);
|
||||
}
|
||||
addConfiguration(settings);
|
||||
}
|
||||
|
||||
public abstract void addConfiguration(RunnerAndConfigurationSettings settings,
|
||||
boolean isShared,
|
||||
List<BeforeRunTask> tasks,
|
||||
boolean addTemplateTasksIfAbsent);
|
||||
@Deprecated
|
||||
public final void addConfiguration(RunnerAndConfigurationSettings settings, boolean isShared, List<BeforeRunTask> tasks, boolean addTemplateTasksIfAbsent) {
|
||||
if (isShared) {
|
||||
((RunnerAndConfigurationSettingsImpl)settings).setLevel(RunnerAndConfigurationSettingsImpl.Level.PROJECT);
|
||||
}
|
||||
addConfiguration(settings, tasks, addTemplateTasksIfAbsent);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void addConfiguration(@NotNull RunnerAndConfigurationSettings settings, @NotNull List<BeforeRunTask> tasks, boolean addTemplateTasksIfAbsent) {
|
||||
setBeforeRunTasks(settings.getConfiguration(), tasks, addTemplateTasksIfAbsent);
|
||||
addConfiguration(settings);
|
||||
}
|
||||
|
||||
@SuppressWarnings("MethodMayBeStatic")
|
||||
@Deprecated
|
||||
|
||||
@@ -19,7 +19,6 @@ package com.intellij.execution.actions;
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.RunManager;
|
||||
import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.impl.RunDialog;
|
||||
import com.intellij.execution.impl.RunManagerImpl;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
@@ -122,14 +121,9 @@ public class CreateAction extends BaseRunConfigurationAction {
|
||||
|
||||
@Override
|
||||
public void perform(final ConfigurationContext context) {
|
||||
final RunManagerImpl runManager = (RunManagerImpl)context.getRunManager();
|
||||
final RunnerAndConfigurationSettings configuration = context.getConfiguration();
|
||||
final RunnerAndConfigurationSettings template = runManager.getConfigurationTemplate(configuration.getFactory());
|
||||
final RunConfiguration templateConfiguration = template.getConfiguration();
|
||||
runManager.addConfiguration(configuration,
|
||||
template.isShared(),
|
||||
runManager.getBeforeRunTasks(templateConfiguration),
|
||||
false);
|
||||
RunManagerImpl runManager = (RunManagerImpl)context.getRunManager();
|
||||
RunnerAndConfigurationSettings configuration = context.getConfiguration();
|
||||
runManager.addConfiguration(configuration, runManager.getConfigurationTemplate(configuration.getFactory()).isShared());
|
||||
runManager.setSelectedConfiguration(configuration);
|
||||
}
|
||||
}
|
||||
@@ -146,9 +140,7 @@ public class CreateAction extends BaseRunConfigurationAction {
|
||||
final RunnerAndConfigurationSettings configuration = context.getConfiguration();
|
||||
if (RunDialog.editConfiguration(context.getProject(), configuration, ExecutionBundle.message("create.run.configuration.for.item.dialog.title", configuration.getName()))) {
|
||||
final RunManagerImpl runManager = (RunManagerImpl)context.getRunManager();
|
||||
runManager.addConfiguration(configuration,
|
||||
configuration.isShared(),
|
||||
runManager.getBeforeRunTasks(configuration.getConfiguration()), false);
|
||||
runManager.addConfiguration(configuration);
|
||||
runManager.setSelectedConfiguration(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,15 +38,14 @@ abstract class BaseRCSettingsConfigurable extends SettingsEditorConfigurable<Run
|
||||
RunnerAndConfigurationSettings snapshot = getEditor().getSnapshot();
|
||||
|
||||
final RunManagerImpl runManager = RunManagerImpl.getInstanceImpl(original.getConfiguration().getProject());
|
||||
if (runManager.findExistingConfigurationId(original) == null) return true;
|
||||
if (!super.isModified()) return false;
|
||||
if (!original.isTemplate() && runManager.findExistingConfigurationId(original) == null) {
|
||||
String existingConfigurationId = runManager.findExistingConfigurationId(original);
|
||||
if (existingConfigurationId == null) {
|
||||
return true;
|
||||
}
|
||||
if (isSnapshotSpecificallyModified(runManager, original, snapshot)) {
|
||||
return true;
|
||||
if (!super.isModified()) {
|
||||
return false;
|
||||
}
|
||||
if (!runManager.getBeforeRunTasks(original.getConfiguration()).equals(runManager.getBeforeRunTasks(snapshot.getConfiguration()))) {
|
||||
if (isSnapshotSpecificallyModified(runManager, original, snapshot) || !runManager.getBeforeRunTasks(original.getConfiguration()).equals(runManager.getBeforeRunTasks(snapshot.getConfiguration()))) {
|
||||
return true;
|
||||
}
|
||||
if (original instanceof JDOMExternalizable && snapshot instanceof JDOMExternalizable) {
|
||||
|
||||
+2
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -109,9 +109,7 @@ public final class ModuleRunConfigurationManager implements PersistentStateCompo
|
||||
|
||||
public void writeExternal(@NotNull final Element element) throws WriteExternalException {
|
||||
LOG.debug("writeExternal(" + myModule + ")");
|
||||
for (final RunnerAndConfigurationSettings settings : getModuleRunConfigurationSettings()) {
|
||||
myManager.addConfigurationElement(element, settings);
|
||||
}
|
||||
myManager.writeConfigurations(element, getModuleRunConfigurationSettings());
|
||||
if (myUnloadedElements != null) {
|
||||
for (final Element unloadedElement : myUnloadedElements) {
|
||||
element.addContent(unloadedElement.clone());
|
||||
|
||||
+2
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -45,9 +45,7 @@ public class ProjectRunConfigurationManager implements PersistentStateComponent<
|
||||
@Override
|
||||
public Element getState() {
|
||||
Element state = new Element("state");
|
||||
for (RunnerAndConfigurationSettings configuration : myManager.getStableConfigurations(true)) {
|
||||
myManager.addConfigurationElement(state, configuration);
|
||||
}
|
||||
myManager.writeConfigurations(state, myManager.getSharedConfigurations());
|
||||
if (!ContainerUtil.isEmpty(myUnloadedElements)) {
|
||||
for (Element unloadedElement : myUnloadedElements) {
|
||||
state.addContent(unloadedElement.clone());
|
||||
|
||||
@@ -17,7 +17,10 @@
|
||||
package com.intellij.execution.impl
|
||||
|
||||
import com.intellij.ProjectTopics
|
||||
import com.intellij.configurationStore.*
|
||||
import com.intellij.configurationStore.LazySchemeProcessor
|
||||
import com.intellij.configurationStore.SchemeDataHolder
|
||||
import com.intellij.configurationStore.SchemeManagerIprProvider
|
||||
import com.intellij.configurationStore.save
|
||||
import com.intellij.execution.*
|
||||
import com.intellij.execution.configurations.*
|
||||
import com.intellij.execution.runners.ExecutionEnvironment
|
||||
@@ -30,7 +33,6 @@ import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import com.intellij.openapi.options.Scheme
|
||||
import com.intellij.openapi.options.SchemeManagerFactory
|
||||
import com.intellij.openapi.options.SchemeState
|
||||
import com.intellij.openapi.project.IndexNotReadyException
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.roots.ModuleRootEvent
|
||||
@@ -130,8 +132,8 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
LOG.error(e)
|
||||
}
|
||||
|
||||
val factory = settings.factory ?: return UnknownRunConfigurationScheme(name)
|
||||
doLoadConfiguration(element, false, settings, factory)
|
||||
//val factory = settings.factory ?: return UnknownRunConfigurationScheme(name)
|
||||
doLoadConfiguration(element, settings)
|
||||
return settings
|
||||
}
|
||||
|
||||
@@ -268,50 +270,40 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
}
|
||||
}
|
||||
|
||||
override fun addConfiguration(settings: RunnerAndConfigurationSettings, shared: Boolean, tasks: List<BeforeRunTask<*>>?, addEnabledTemplateTasksIfAbsent: Boolean) {
|
||||
val existingId = findExistingConfigurationId(settings)
|
||||
override fun addConfiguration(settings: RunnerAndConfigurationSettings) {
|
||||
val newId = settings.uniqueID
|
||||
var existingSettings: RunnerAndConfigurationSettings? = null
|
||||
var existingId: String? = null
|
||||
lock.write {
|
||||
existingId = findExistingConfigurationId(settings)
|
||||
existingId?.let {
|
||||
existingSettings = idToSettings.remove(it)
|
||||
}
|
||||
|
||||
if (existingId != null) {
|
||||
existingSettings = idToSettings.remove(existingId)
|
||||
if (selectedConfigurationId != null && selectedConfigurationId == existingId) {
|
||||
setSelectedConfigurationId(newId)
|
||||
}
|
||||
idToSettings.put(newId, settings)
|
||||
|
||||
if (existingId == null) {
|
||||
refreshUsagesList(settings.configuration)
|
||||
}
|
||||
|
||||
if (!settings.isShared && existingSettings !== settings) {
|
||||
schemeManager.addScheme(settings as RunConfigurationScheme)
|
||||
}
|
||||
}
|
||||
|
||||
if (selectedConfigurationId != null && selectedConfigurationId == existingId) {
|
||||
setSelectedConfigurationId(newId)
|
||||
}
|
||||
idToSettings.put(newId, settings)
|
||||
|
||||
val configuration = settings.configuration
|
||||
if (existingId == null) {
|
||||
refreshUsagesList(configuration)
|
||||
}
|
||||
checkRecentsLimit()
|
||||
|
||||
if (shared) {
|
||||
settings.isTemporary = false
|
||||
}
|
||||
|
||||
if (tasks != null) {
|
||||
setBeforeRunTasks(configuration, tasks, addEnabledTemplateTasksIfAbsent)
|
||||
}
|
||||
|
||||
if (existingSettings === settings) {
|
||||
myDispatcher.multicaster.runConfigurationChanged(settings, existingId)
|
||||
}
|
||||
else {
|
||||
runConfigurationAdded(settings, shared)
|
||||
myDispatcher.multicaster.runConfigurationAdded(settings)
|
||||
}
|
||||
}
|
||||
|
||||
private fun runConfigurationAdded(settings: RunnerAndConfigurationSettings, shared: Boolean) {
|
||||
if (!shared) {
|
||||
schemeManager.addScheme(settings as RunConfigurationScheme)
|
||||
}
|
||||
|
||||
myDispatcher.multicaster.runConfigurationAdded(settings)
|
||||
}
|
||||
|
||||
override fun refreshUsagesList(profile: RunProfile) {
|
||||
if (profile !is RunConfiguration) return
|
||||
val settings = getSettings(profile)
|
||||
@@ -331,14 +323,16 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
fun checkRecentsLimit() {
|
||||
trimUsagesListToLimit()
|
||||
val removed = SmartList<RunnerAndConfigurationSettings>()
|
||||
while (tempConfigurationsList.size > config.recentsLimit) {
|
||||
val it = idToSettings.values.iterator()
|
||||
while (it.hasNext()) {
|
||||
val configuration = it.next()
|
||||
if (configuration.isTemporary && !recentlyUsedTemporaries.contains(configuration.configuration)) {
|
||||
removed.add(configuration)
|
||||
it.remove()
|
||||
break
|
||||
lock.write {
|
||||
while (tempConfigurationsList.size > config.recentsLimit) {
|
||||
val it = idToSettings.values.iterator()
|
||||
while (it.hasNext()) {
|
||||
val settings = it.next()
|
||||
if (settings.isTemporary && !recentlyUsedTemporaries.contains(settings.configuration)) {
|
||||
removed.add(settings)
|
||||
it.remove()
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -508,32 +502,21 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
}
|
||||
|
||||
fun writeContext(element: Element) {
|
||||
val values = ArrayList(idToSettings.values)
|
||||
for (configurationSettings in values) {
|
||||
if (configurationSettings.isTemporary) {
|
||||
addConfigurationElement(element, configurationSettings)
|
||||
}
|
||||
}
|
||||
writeConfigurations(element, lock.read { idToSettings.values.filterSmart { it.isTemporary } })
|
||||
|
||||
selectedConfiguration?.let {
|
||||
element.setAttribute(SELECTED_ATTR, it.uniqueID)
|
||||
}
|
||||
}
|
||||
|
||||
fun addConfigurationElement(parentNode: Element, settings: RunnerAndConfigurationSettings) {
|
||||
val configurationElement = Element(CONFIGURATION)
|
||||
parentNode.addContent(configurationElement)
|
||||
(settings as RunnerAndConfigurationSettingsImpl).writeExternal(configurationElement)
|
||||
writeBeforeRunTasks(settings.configuration, settings.isTemplate, configurationElement)
|
||||
fun writeConfigurations(parentNode: Element, settings: Collection<RunnerAndConfigurationSettings>) {
|
||||
settings.forEach { parentNode.addContent((it as RunnerAndConfigurationSettingsImpl).writeScheme()) }
|
||||
}
|
||||
|
||||
internal fun writeBeforeRunTasks(configuration: RunConfiguration, isTemplate: Boolean, configurationElement: Element) {
|
||||
if (configuration is UnknownRunConfiguration) {
|
||||
return
|
||||
}
|
||||
|
||||
val tasks = if (isTemplate) configuration.beforeRunTasks else getEffectiveBeforeRunTasks(configuration, ownIsOnlyEnabled = false, isDisableTemplateTasks = true)
|
||||
if (tasks.isEmpty()) {
|
||||
internal fun writeBeforeRunTasks(settings: RunnerAndConfigurationSettings, configurationElement: Element) {
|
||||
val configuration = settings.configuration
|
||||
val tasks = if (settings.isTemplate) configuration.beforeRunTasks else getEffectiveBeforeRunTasks(configuration, ownIsOnlyEnabled = false, isDisableTemplateTasks = true)
|
||||
if (tasks.isEmpty() && settings.isNewSerializationAllowed) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -624,8 +607,8 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
fireRunConfigurationSelected()
|
||||
}
|
||||
|
||||
fun findExistingConfigurationId(settings: RunnerAndConfigurationSettings?): String? {
|
||||
if (settings != null) {
|
||||
fun findExistingConfigurationId(settings: RunnerAndConfigurationSettings): String? {
|
||||
lock.read {
|
||||
for ((key, value) in idToSettings) {
|
||||
if (value === settings) {
|
||||
return key
|
||||
@@ -681,21 +664,25 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
settings.readExternal(element, isShared)
|
||||
}
|
||||
|
||||
val factory = settings.factory ?: return null
|
||||
doLoadConfiguration(element, isShared, settings, factory)
|
||||
if (isShared) {
|
||||
settings.level = RunnerAndConfigurationSettingsImpl.Level.PROJECT
|
||||
}
|
||||
|
||||
doLoadConfiguration(element, settings)
|
||||
return settings
|
||||
}
|
||||
|
||||
private fun doLoadConfiguration(element: Element, isShared: Boolean, settings: RunnerAndConfigurationSettingsImpl, factory: ConfigurationFactory) {
|
||||
private fun doLoadConfiguration(element: Element, settings: RunnerAndConfigurationSettingsImpl) {
|
||||
val tasks = element.getChild(METHOD)?.let { readStepsBeforeRun(it, settings) } ?: emptyList()
|
||||
settings.configuration.beforeRunTasks = tasks
|
||||
if (settings.isTemplate) {
|
||||
val factory = settings.factory
|
||||
lock.write {
|
||||
templateIdToConfiguration.put("${factory.type.id}.${factory.name}", settings)
|
||||
}
|
||||
}
|
||||
else {
|
||||
addConfiguration(settings, isShared, null, false)
|
||||
addConfiguration(settings)
|
||||
if (element.getAttributeValue(SELECTED_ATTR).toBoolean()) {
|
||||
// to support old style
|
||||
selectedConfiguration = settings
|
||||
@@ -754,17 +741,19 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
}
|
||||
}
|
||||
|
||||
fun getStableConfigurations(shared: Boolean): Collection<RunnerAndConfigurationSettings> {
|
||||
var result: MutableList<RunnerAndConfigurationSettings>? = null
|
||||
for (configuration in idToSettings.values) {
|
||||
if (!configuration.isTemporary && configuration.isShared == shared) {
|
||||
if (result == null) {
|
||||
result = SmartList<RunnerAndConfigurationSettings>()
|
||||
fun getSharedConfigurations(): List<RunnerAndConfigurationSettings> {
|
||||
lock.read {
|
||||
var result: MutableList<RunnerAndConfigurationSettings>? = null
|
||||
for (configuration in idToSettings.values) {
|
||||
if (configuration.isShared) {
|
||||
if (result == null) {
|
||||
result = ArrayList<RunnerAndConfigurationSettings>()
|
||||
}
|
||||
result.add(configuration)
|
||||
}
|
||||
result.add(configuration)
|
||||
}
|
||||
return result ?: emptyList()
|
||||
}
|
||||
return ContainerUtil.notNullize(result)
|
||||
}
|
||||
|
||||
internal val configurationSettings: Collection<RunnerAndConfigurationSettings>
|
||||
@@ -1012,16 +1001,18 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
|
||||
fun removeNotExistingSharedConfigurations(existing: Set<String>) {
|
||||
var removed: MutableList<RunnerAndConfigurationSettings>? = null
|
||||
val it = idToSettings.entries.iterator()
|
||||
while (it.hasNext()) {
|
||||
val entry = it.next()
|
||||
val settings = entry.value
|
||||
if (!settings.isTemplate && settings.isShared && !existing.contains(settings.uniqueID)) {
|
||||
if (removed == null) {
|
||||
removed = SmartList<RunnerAndConfigurationSettings>()
|
||||
lock.write {
|
||||
val it = idToSettings.entries.iterator()
|
||||
while (it.hasNext()) {
|
||||
val entry = it.next()
|
||||
val settings = entry.value
|
||||
if (!settings.isTemplate && settings.isShared && !existing.contains(settings.uniqueID)) {
|
||||
if (removed == null) {
|
||||
removed = SmartList<RunnerAndConfigurationSettings>()
|
||||
}
|
||||
removed!!.add(settings)
|
||||
it.remove()
|
||||
}
|
||||
removed.add(settings)
|
||||
it.remove()
|
||||
}
|
||||
}
|
||||
fireRunConfigurationsRemoved(removed)
|
||||
@@ -1042,9 +1033,7 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
private fun fireRunConfigurationsRemoved(removed: List<RunnerAndConfigurationSettings>?) {
|
||||
if (removed != null && !removed.isEmpty()) {
|
||||
recentlyUsedTemporaries.removeAll(removed.map { it.configuration })
|
||||
for (settings in removed) {
|
||||
myDispatcher.multicaster.runConfigurationRemoved(settings)
|
||||
}
|
||||
removed.forEach { myDispatcher.multicaster.runConfigurationRemoved(it) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1106,10 +1095,10 @@ class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persistent
|
||||
|
||||
internal interface RunConfigurationScheme : Scheme
|
||||
|
||||
private class UnknownRunConfigurationScheme(private val name: String) : RunConfigurationScheme, SerializableScheme {
|
||||
override fun getSchemeState() = SchemeState.UNCHANGED
|
||||
|
||||
override fun writeScheme() = throw AssertionError("Must be not called")
|
||||
|
||||
override fun getName() = name
|
||||
}
|
||||
//private class UnknownRunConfigurationScheme(private val name: String) : RunConfigurationScheme, SerializableScheme {
|
||||
// override fun getSchemeState() = SchemeState.UNCHANGED
|
||||
//
|
||||
// override fun writeScheme() = throw AssertionError("Must be not called")
|
||||
//
|
||||
// override fun getName() = name
|
||||
//}
|
||||
+9
-5
@@ -67,13 +67,13 @@ class RunnerAndConfigurationSettingsImpl @JvmOverloads constructor(private val m
|
||||
override fun createSettings(runner: ProgramRunner<*>) = configuration!!.createRunnerSettings(InfoProvider(runner))
|
||||
}
|
||||
|
||||
internal var level = Level.WORKSPACE
|
||||
var level = Level.WORKSPACE
|
||||
private var isEditBeforeRun = false
|
||||
private var isActivateToolWindowBeforeRun = true
|
||||
private var wasSingletonSpecifiedExplicitly = false
|
||||
private var folderName: String? = null
|
||||
|
||||
override fun getFactory() = configuration?.factory
|
||||
override fun getFactory(): ConfigurationFactory = configuration?.factory ?: UnknownConfigurationType.FACTORY
|
||||
|
||||
override fun isTemplate() = isTemplate
|
||||
|
||||
@@ -197,8 +197,8 @@ class RunnerAndConfigurationSettingsImpl @JvmOverloads constructor(private val m
|
||||
}
|
||||
|
||||
fun writeExternal(element: Element) {
|
||||
val configuration = configuration
|
||||
val factory = configuration!!.factory
|
||||
val configuration = getConfiguration()
|
||||
val factory = configuration.factory
|
||||
if (configuration !is UnknownRunConfiguration) {
|
||||
if (isTemplate) {
|
||||
element.setAttribute(TEMPLATE_FLAG_ATTRIBUTE, "true")
|
||||
@@ -249,7 +249,7 @@ class RunnerAndConfigurationSettingsImpl @JvmOverloads constructor(private val m
|
||||
writeExternal(element)
|
||||
|
||||
configuration?.let {
|
||||
manager.writeBeforeRunTasks(it, isTemplate, element)
|
||||
manager.writeBeforeRunTasks(this, element)
|
||||
}
|
||||
|
||||
return element
|
||||
@@ -473,3 +473,7 @@ class RunnerAndConfigurationSettingsImpl @JvmOverloads constructor(private val m
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// always write method element for shared settings for now due to preserve backward compatibility
|
||||
val RunnerAndConfigurationSettings.isNewSerializationAllowed: Boolean
|
||||
get() = !isShared
|
||||
+1
-1
@@ -125,7 +125,7 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
|
||||
settings.setSingleton(mySingleton);
|
||||
settings.setFolderName(myFolderName);
|
||||
super.apply();
|
||||
runManager.addConfiguration(settings, myStoreProjectConfiguration, runManager.getBeforeRunTasks(settings.getConfiguration()), false);
|
||||
runManager.addConfiguration(settings, myStoreProjectConfiguration);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,8 +29,6 @@ import javax.swing.Icon
|
||||
class MockRunManager : RunManagerEx() {
|
||||
override fun getConfigurationsList(type: ConfigurationType) = emptyList<RunConfiguration>()
|
||||
|
||||
fun isTemporary(configuration: RunConfiguration) = false
|
||||
|
||||
override fun makeStable(configuration: RunConfiguration) {}
|
||||
|
||||
override fun makeStable(settings: RunnerAndConfigurationSettings) {}
|
||||
@@ -77,10 +75,7 @@ class MockRunManager : RunManagerEx() {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun addConfiguration(settings: RunnerAndConfigurationSettings,
|
||||
isShared: Boolean,
|
||||
tasks: List<BeforeRunTask<*>>,
|
||||
addTemplateTasksIfAbsent: Boolean) {
|
||||
override fun addConfiguration(settings: RunnerAndConfigurationSettings) {
|
||||
}
|
||||
|
||||
override fun getBeforeRunTasks(configuration: RunConfiguration): List<BeforeRunTask<*>> {
|
||||
|
||||
@@ -637,9 +637,7 @@ public class AntExplorer extends SimpleToolWindowPanel implements DataProvider,
|
||||
configuration.acceptSettings(target);
|
||||
if (RunDialog.editConfiguration(e.getProject(), settings, ExecutionBundle
|
||||
.message("create.run.configuration.for.item.dialog.title", configuration.getName()))) {
|
||||
runManager.addConfiguration(settings,
|
||||
settings.isShared(),
|
||||
runManager.getBeforeRunTasks(settings.getConfiguration()), false);
|
||||
runManager.addConfiguration(settings);
|
||||
runManager.setSelectedConfiguration(settings);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user