This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new 231c6610c8 GROOVY-11895: Allow arguments to be set in groovyConsole
231c6610c8 is described below

commit 231c6610c84c1f2a63c91dc8bf4976e717851fc2
Author: Paul King <[email protected]>
AuthorDate: Thu Apr 2 22:03:29 2026 +1000

    GROOVY-11895: Allow arguments to be set in groovyConsole
---
 .../main/groovy/groovy/console/ui/Console.groovy   | 30 +++++++++++++++++++++-
 .../groovy/groovy/console/ui/ConsoleActions.groovy |  6 +++++
 .../groovy/groovy/console/ui/ConsoleView.groovy    |  1 +
 .../groovy/console/ui/view/BasicMenuBar.groovy     |  2 ++
 .../groovy/console/ui/view/MacOSXMenuBar.groovy    |  2 ++
 5 files changed, 40 insertions(+), 1 deletion(-)

diff --git 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/Console.groovy 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/Console.groovy
index a70d2166aa..3aeaac426a 100644
--- 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/Console.groovy
+++ 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/Console.groovy
@@ -237,6 +237,10 @@ class Console implements CaretListener, HyperlinkListener, 
ComponentListener, Fo
     boolean stackOverFlowError = false
     Action interruptAction
 
+    // Script arguments
+    String scriptArgs = ''
+    Action setScriptArgsAction
+
     Action selectWordAction
     Action selectPreviousWordAction
 
@@ -1200,7 +1204,7 @@ class Console implements CaretListener, 
HyperlinkListener, ComponentListener, Fo
         @Override
         Object run(String src) {
             String name = ((File) Console.this.scriptFile)?.name ?: 
(DEFAULT_SCRIPT_NAME_START + Console.this.scriptNameCounter++)
-            Console.this.shell.run(src, name, [])
+            Console.this.shell.run(src, name, Console.this.scriptArgsArray)
         }
 
         @Override
@@ -1345,6 +1349,30 @@ class Console implements CaretListener, 
HyperlinkListener, ComponentListener, Fo
         binding.variables._outputTransforms = 
OutputTransforms.loadOutputTransforms()
     }
 
+    void setScriptArgs(EventObject evt = null) {
+        def result = JOptionPane.showInputDialog(frame, 'Enter script 
arguments (space-separated):',
+                'Set Script Arguments', JOptionPane.PLAIN_MESSAGE, null, null, 
scriptArgs)
+        if (result != null) {
+            scriptArgs = result.toString()
+            updateSetScriptArgsAction()
+        }
+    }
+
+    private void updateSetScriptArgsAction() {
+        if (setScriptArgsAction) {
+            if (scriptArgs) {
+                def display = scriptArgs.length() > 30 ? scriptArgs[0..29] + 
'...' : scriptArgs
+                setScriptArgsAction.putValue(Action.NAME, "Set Script 
Arguments [${display}]" as String)
+            } else {
+                setScriptArgsAction.putValue(Action.NAME, 'Set Script 
Arguments')
+            }
+        }
+    }
+
+    private String[] getScriptArgsArray() {
+        scriptArgs ? scriptArgs.split(/\s+/) : new String[0]
+    }
+
     private void saveInputAreaContentHash() {
         inputAreaContentHash = inputArea.getText().hashCode()
     }
diff --git 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy
 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy
index f4606cf0ab..b2aff4378c 100644
--- 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy
+++ 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleActions.groovy
@@ -235,6 +235,12 @@ runJavaSelectionAction = action(
         closure: controller.&runSelectedJava
 )
 
+setScriptArgsAction = action(
+        name: 'Set Script Arguments',
+        closure: controller.&setScriptArgs,
+        mnemonic: 'G',
+)
+
 addClasspathJar = action(
         name: 'Add Jar(s) to ClassPath',
         closure: controller.&addClasspathJar,
diff --git 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleView.groovy
 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleView.groovy
index 487405b5bc..8bc36033ad 100644
--- 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleView.groovy
+++ 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/ConsoleView.groovy
@@ -128,6 +128,7 @@ controller.hideOutputWindowAction2 = hideOutputWindowAction2
 controller.hideOutputWindowAction3 = hideOutputWindowAction3
 controller.hideOutputWindowAction4 = hideOutputWindowAction4
 controller.interruptAction = interruptAction
+controller.setScriptArgsAction = setScriptArgsAction
 controller.origDividerSize = origDividerSize
 controller.splitPane = splitPane
 controller.blank = blank
diff --git 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/BasicMenuBar.groovy
 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/BasicMenuBar.groovy
index f598e40b4b..674c9f19c3 100644
--- 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/BasicMenuBar.groovy
+++ 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/BasicMenuBar.groovy
@@ -88,6 +88,8 @@ menuBar {
         menuItem(compileAction)
         menuItem(compileJavaAction)
         separator()
+        menuItem(setScriptArgsAction)
+        separator()
         menuItem(addClasspathJar)
         menuItem(addClasspathDir)
         menuItem(listClasspath)
diff --git 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/MacOSXMenuBar.groovy
 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/MacOSXMenuBar.groovy
index fae05c47c9..59707d6d28 100644
--- 
a/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/MacOSXMenuBar.groovy
+++ 
b/subprojects/groovy-console/src/main/groovy/groovy/console/ui/view/MacOSXMenuBar.groovy
@@ -214,6 +214,8 @@ menuBar {
         menuItem(compileAction, icon:null)
         menuItem(compileJavaAction, icon:null)
         separator()
+        menuItem(setScriptArgsAction, icon:null)
+        separator()
         menuItem(addClasspathJar)
         menuItem(addClasspathDir)
         menuItem(listClasspath)

Reply via email to