diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleExecuteTaskAction.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleExecuteTaskAction.java index 35bf6cbc3660..021ea5901860 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleExecuteTaskAction.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/action/GradleExecuteTaskAction.java @@ -15,6 +15,7 @@ */ package org.jetbrains.plugins.gradle.action; +import com.intellij.execution.Executor; import com.intellij.execution.RunManager; import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.executors.DefaultRunExecutor; @@ -43,6 +44,7 @@ import org.gradle.cli.CommandLineArgumentException; import org.gradle.cli.CommandLineParser; import org.gradle.cli.ParsedCommandLine; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.gradle.service.execution.cmd.GradleCommandLineOptionsConverter; import org.jetbrains.plugins.gradle.service.task.ExecuteGradleTaskHistoryService; import org.jetbrains.plugins.gradle.service.task.GradleRunTaskDialog; @@ -111,13 +113,16 @@ public class GradleExecuteTaskAction extends ExternalSystemAction { historyService.addCommand(fullCommandLine, workDirectory); - runGradle(project, workDirectory, fullCommandLine); + runGradle(project, null, workDirectory, fullCommandLine); } - public static void runGradle(@NotNull Project project, @NotNull String workDirectory, @NotNull String fullCommandLine) { + public static void runGradle(@NotNull Project project, + @Nullable Executor executor, + @NotNull String workDirectory, + @NotNull String fullCommandLine) { final ExternalTaskExecutionInfo taskExecutionInfo; try { - taskExecutionInfo = buildTaskInfo(workDirectory, fullCommandLine); + taskExecutionInfo = buildTaskInfo(workDirectory, fullCommandLine, executor); } catch (CommandLineArgumentException ex) { final NotificationData notificationData = new NotificationData( @@ -147,7 +152,9 @@ public class GradleExecuteTaskAction extends ExternalSystemAction { } } - private static ExternalTaskExecutionInfo buildTaskInfo(@NotNull String projectPath, @NotNull String fullCommandLine) + private static ExternalTaskExecutionInfo buildTaskInfo(@NotNull String projectPath, + @NotNull String fullCommandLine, + @Nullable Executor executor) throws CommandLineArgumentException { CommandLineParser gradleCmdParser = new CommandLineParser(); @@ -180,7 +187,7 @@ public class GradleExecuteTaskAction extends ExternalSystemAction { settings.setScriptParameters(scriptParameters); settings.setVmOptions(vmOptions); settings.setExternalSystemIdString(GradleConstants.SYSTEM_ID.toString()); - return new ExternalTaskExecutionInfo(settings, DefaultRunExecutor.EXECUTOR_ID); + return new ExternalTaskExecutionInfo(settings, executor == null ? DefaultRunExecutor.EXECUTOR_ID : executor.getId()); } private static String obtainAppropriateWorkingDirectory(AnActionEvent e) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleRunAnythingProvider.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleRunAnythingProvider.java index 85469575c876..d4017897efa4 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleRunAnythingProvider.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/GradleRunAnythingProvider.java @@ -1,6 +1,7 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.plugins.gradle.execution; +import com.intellij.execution.Executor; import com.intellij.ide.actions.runAnything.activity.RunAnythingProviderBase; import com.intellij.ide.actions.runAnything.items.RunAnythingItem; import com.intellij.openapi.actionSystem.DataContext; @@ -33,6 +34,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import static com.intellij.ide.actions.runAnything.RunAnythingAction.EXECUTOR_KEY; import static com.intellij.ide.actions.runAnything.RunAnythingUtil.fetchProject; import static com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.getChildren; @@ -101,8 +103,9 @@ public class GradleRunAnythingProvider extends RunAnythingProviderBase { public void execute(@NotNull DataContext dataContext, @NotNull String value) { Project project = fetchProject(dataContext); String commandLine = StringUtil.trimStart(value, getHelpCommand()); + Executor executor = EXECUTOR_KEY.getData(dataContext); for (GradleProjectSettings setting : GradleSettings.getInstance(project).getLinkedProjectsSettings()) { - GradleExecuteTaskAction.runGradle(project, setting.getExternalProjectPath(), commandLine); + GradleExecuteTaskAction.runGradle(project, executor, setting.getExternalProjectPath(), commandLine); } }