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)