From 8c08b0288bd442fcb3a0e726c0f28ece2b84826f Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Thu, 27 Sep 2018 22:50:03 +0300 Subject: [PATCH] Support "prompt" macro in parameters of run configurations --- .../execution/util/ProgramParametersConfigurator.java | 8 +++++--- .../lang-impl/src/com/intellij/ide/macro/PromptMacro.java | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersConfigurator.java b/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersConfigurator.java index 9b8c16caecf3..51677ab47890 100644 --- a/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersConfigurator.java +++ b/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersConfigurator.java @@ -60,7 +60,10 @@ public class ProgramParametersConfigurator { public static void addMacroSupport(@NotNull ExpandableTextField expandableTextField) { if (Registry.is("allow.macros.for.run.configurations")) { expandableTextField.addExtension(ExtendableTextComponent.Extension.create(AllIcons.General.Add, "Insert Macros", () - -> MacrosDialog.show(expandableTextField, macro -> !(macro instanceof PromptingMacro) && !(macro instanceof EditorMacro)))); + -> MacrosDialog.show(expandableTextField, macro -> { + if (macro instanceof PromptMacro) return true; + return !(macro instanceof PromptingMacro) && !(macro instanceof EditorMacro); + }))); } } @@ -69,8 +72,7 @@ public class ProgramParametersConfigurator { Collection macros = MacroManager.getInstance().getMacros(); for (Macro macro: macros) { String value = StringUtil.notNullize( - macro instanceof PromptingMacro || macro instanceof EditorMacro - ? null : + macro instanceof PromptMacro ? ((PromptMacro)macro).promptUser(): macro.preview(), ""); if (StringUtil.containsWhitespaces(value)) { value = "\"" + value + "\""; diff --git a/platform/lang-impl/src/com/intellij/ide/macro/PromptMacro.java b/platform/lang-impl/src/com/intellij/ide/macro/PromptMacro.java index 45cdcf5501f8..5eda05f42b62 100644 --- a/platform/lang-impl/src/com/intellij/ide/macro/PromptMacro.java +++ b/platform/lang-impl/src/com/intellij/ide/macro/PromptMacro.java @@ -35,6 +35,10 @@ public final class PromptMacro extends PromptingMacro implements SecondQueueExpa @Override @Nullable protected String promptUser(DataContext dataContext) { + return promptUser(); + } + + public String promptUser() { return Messages.showInputDialog(IdeBundle.message("prompt.enter.parameters"), IdeBundle.message("title.input"), Messages.getQuestionIcon()); }