mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-182193 Intention to create a new Run configuration for executable class
"Create/Edit Run Configuration" added to run line marker GitOrigin-RevId: aba80a6e38f7f6cd6f2fb8615032d8e74a9f4fdb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
25b69d927c
commit
e8f25da80c
+17
@@ -167,4 +167,21 @@ public class RunLineMarkerTest extends LightJavaCodeInsightFixtureTestCase {
|
||||
"Debug 'Main_class_test.main()'\n" +
|
||||
"Run 'Main_class_test.main()' with Coverage"));
|
||||
}
|
||||
|
||||
public void testEditConfigurationAction() {
|
||||
myFixture.configureByText("MainTest.java", "public class MainTest {\n" +
|
||||
" public static void ma<caret>in(String[] args) {\n" +
|
||||
" }\n" +
|
||||
"}");
|
||||
List<GutterMark> marks = myFixture.findGuttersAtCaret();
|
||||
assertEquals(1, marks.size());
|
||||
GutterIconRenderer mark = (GutterIconRenderer)marks.get(0);
|
||||
AnAction[] children = mark.getPopupMenuActions().getChildren(new TestActionEvent());
|
||||
AnAction action = ContainerUtil.find(children, t -> t.getTemplateText().startsWith("Create"));
|
||||
assertNotNull(action);
|
||||
myFixture.testAction(action);
|
||||
TestActionEvent event = new TestActionEvent();
|
||||
action.update(event);
|
||||
assertTrue(event.getPresentation().getText().startsWith("Edit"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import com.intellij.execution.impl.RunDialog;
|
||||
import com.intellij.execution.impl.RunManagerImpl;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
@@ -71,7 +72,9 @@ public class CreateAction extends BaseRunConfigurationAction {
|
||||
@Override
|
||||
public void perform(final ConfigurationContext context) {
|
||||
final RunnerAndConfigurationSettings configuration = context.getConfiguration();
|
||||
if (RunDialog.editConfiguration(context.getProject(), configuration, ExecutionBundle.message("create.run.configuration.for.item.dialog.title", configuration.getName()))) {
|
||||
if (ApplicationManager.getApplication().isUnitTestMode() ||
|
||||
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);
|
||||
runManager.setSelectedConfiguration(configuration);
|
||||
|
||||
@@ -38,11 +38,13 @@ class ExecutorAction private constructor(val origin: AnAction,
|
||||
@JvmOverloads
|
||||
fun getActionList(order: Int = 0): List<AnAction> {
|
||||
val actionManager = ActionManager.getInstance()
|
||||
return ExecutorRegistry.getInstance().registeredExecutors
|
||||
val createAction = actionManager.getAction("CreateRunConfiguration")
|
||||
val list = ExecutorRegistry.getInstance().registeredExecutors
|
||||
.mapNotNull { executor ->
|
||||
val action = actionManager.getAction(executor.contextActionId) ?: return@mapNotNull null
|
||||
ExecutorAction(action, executor, order)
|
||||
}
|
||||
return if (createAction == null) list else list + createAction
|
||||
}
|
||||
|
||||
private fun getConfigurations(dataContext: DataContext): List<ConfigurationFromContext> {
|
||||
|
||||
+7
-1
@@ -18,6 +18,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
@@ -82,7 +83,12 @@ public class LineMarkerActionWrapper extends ActionGroup implements PriorityActi
|
||||
|
||||
@Override
|
||||
public void update(@NotNull AnActionEvent e) {
|
||||
myOrigin.update(wrapEvent(e));
|
||||
AnActionEvent wrapped = wrapEvent(e);
|
||||
myOrigin.update(wrapped);
|
||||
Icon icon = wrapped.getPresentation().getIcon();
|
||||
if (icon != null) {
|
||||
getTemplatePresentation().setIcon(icon);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user