diff --git a/platform/execution-impl/src/com/intellij/execution/actions/ExecutorAction.java b/platform/execution-impl/src/com/intellij/execution/actions/ExecutorAction.java index 71c750442b5d..ec4248da4c40 100644 --- a/platform/execution-impl/src/com/intellij/execution/actions/ExecutorAction.java +++ b/platform/execution-impl/src/com/intellij/execution/actions/ExecutorAction.java @@ -4,6 +4,7 @@ package com.intellij.execution.actions; import com.intellij.execution.*; import com.intellij.execution.compound.CompoundRunConfiguration; import com.intellij.execution.configurations.RunConfiguration; +import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.executors.DefaultRunExecutor; import com.intellij.execution.impl.ExecutionManagerImpl; import com.intellij.execution.impl.ExecutionManagerImplKt; @@ -133,7 +134,9 @@ public class ExecutorAction extends AnAction } } else { - text = myExecutor.getStartActionText(configuration.getName()); + ProgramRunner runner = ProgramRunner.getRunner(getId(), configuration); + String actionText = runner == null ? null : runner.getStartActionText(myExecutor, configuration); + text = actionText != null ? actionText : myExecutor.getStartActionText(configuration.getName()); } } else { diff --git a/platform/execution/api-dump-unreviewed.txt b/platform/execution/api-dump-unreviewed.txt index e826f6496864..7e0dd329960d 100644 --- a/platform/execution/api-dump-unreviewed.txt +++ b/platform/execution/api-dump-unreviewed.txt @@ -1183,6 +1183,7 @@ com.intellij.execution.runners.ProgramRunner - s:getRunner(java.lang.String,com.intellij.execution.configurations.RunProfile):com.intellij.execution.runners.ProgramRunner - a:getRunnerId():java.lang.String - getSettingsEditor(com.intellij.execution.Executor,com.intellij.execution.configurations.RunConfiguration):com.intellij.openapi.options.SettingsEditor +- getStartActionText(com.intellij.execution.Executor,com.intellij.execution.configurations.RunConfiguration):java.lang.String - onProcessStarted(com.intellij.execution.configurations.RunnerSettings,com.intellij.execution.ExecutionResult):V com.intellij.execution.runners.ProgramRunner$Callback - processNotStarted():V diff --git a/platform/execution/src/com/intellij/execution/runners/ProgramRunner.java b/platform/execution/src/com/intellij/execution/runners/ProgramRunner.java index a3fb2abbe596..e6d0fff7c721 100644 --- a/platform/execution/src/com/intellij/execution/runners/ProgramRunner.java +++ b/platform/execution/src/com/intellij/execution/runners/ProgramRunner.java @@ -8,6 +8,7 @@ import com.intellij.execution.configurations.*; import com.intellij.execution.ui.RunContentDescriptor; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.options.SettingsEditor; +import com.intellij.openapi.util.NlsActions; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -95,6 +96,10 @@ public interface ProgramRunner { default void onProcessStarted(RunnerSettings settings, ExecutionResult executionResult) { } + default @Nullable @NlsActions.ActionText String getStartActionText(@NotNull Executor executor, @NotNull RunConfiguration configuration) { + return null; + } + @Nullable default SettingsEditor getSettingsEditor(Executor executor, RunConfiguration configuration) { return null;