mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Gradle debug anything (IDEA-196883)
This commit is contained in:
+12
-5
@@ -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) {
|
||||
|
||||
+4
-1
@@ -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<String> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user