From 244058047c614ef982be496bbba1a00b36961746 Mon Sep 17 00:00:00 2001 From: Curtis Rueden Date: Sun, 21 Jun 2026 21:13:52 -0500 Subject: [PATCH] Allow Logger override in ParameterScriptProcessor --- .../process/ParameterScriptProcessor.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/scijava/script/process/ParameterScriptProcessor.java b/src/main/java/org/scijava/script/process/ParameterScriptProcessor.java index cb030c8d2..3d75593fc 100644 --- a/src/main/java/org/scijava/script/process/ParameterScriptProcessor.java +++ b/src/main/java/org/scijava/script/process/ParameterScriptProcessor.java @@ -41,6 +41,7 @@ import org.scijava.command.Command; import org.scijava.convert.ConvertService; import org.scijava.log.LogService; +import org.scijava.log.Logger; import org.scijava.module.DefaultMutableModuleItem; import org.scijava.parse.ParseService; import org.scijava.plugin.Parameter; @@ -115,9 +116,21 @@ public class ParameterScriptProcessor implements ScriptProcessor { @Parameter private LogService log; + private Logger logger; + private ScriptInfo info; private boolean header; + /** + * Sets the logger used to report invalid parameters, instead of the + * {@link LogService}. Useful when parsing speculatively, such as for code + * completion, where half-typed parameters are expected and not worth a + * warning. + */ + public void setLogger(final Logger logger) { + this.logger = logger; + } + // -- ScriptProcessor methods -- @Override @@ -164,9 +177,13 @@ public void end() { // -- Helper methods -- + private Logger log() { + return logger == null ? log : logger; + } + private String process(final String line, final String param) { if (parseParam(param)) return ""; - log.warn("Ignoring invalid parameter: " + param); + log().warn("Ignoring invalid parameter: " + param); return line; } @@ -213,7 +230,7 @@ else if (tokens.length == 3) { addItem(varName, type, attrs, true); } catch (final ScriptException exc) { - log.warn("Invalid class: " + typeName, exc); + log().warn("Invalid class: " + typeName, exc); return false; }