Summary
@OptionGroup options (which represent Map<String,String> key=value pairs) render in help without any indication of the expected key=value syntax. Users cannot tell from the help output that these options expect key=value format.
Current output
-D, --properties=<properties> set a system property
--manifest=<manifest>
Expected output (picocli style)
-D=<String=String> set a system property
--manifest=<String=String>
Or ideally with the actual usage syntax:
-D<key>=<value> set a system property
--manifest<key>=<value>
Details
@OptionGroup maps to OptionType.GROUP in aesh. The parser expects the syntax -Dkey=value or --manifestkey=value (key concatenated directly after the option name). The help renderer treats these like regular value options, showing =<name> which suggests the syntax is --manifest=something when it's actually --manifestKey=Value.
This affects all @OptionGroup usages:
-D / --properties (system properties)
--manifest (JAR manifest entries)
Additionally, some @OptionList options are missing descriptions entirely (e.g., --javaagent, --manifest show no description text).
Context
Found in jbang (jbangdev/jbang#2453). Picocli rendered these as -D=<String=String>, making the key=value syntax clear.
Summary
@OptionGroupoptions (which representMap<String,String>key=value pairs) render in help without any indication of the expected key=value syntax. Users cannot tell from the help output that these options expectkey=valueformat.Current output
Expected output (picocli style)
Or ideally with the actual usage syntax:
Details
@OptionGroupmaps toOptionType.GROUPin aesh. The parser expects the syntax-Dkey=valueor--manifestkey=value(key concatenated directly after the option name). The help renderer treats these like regular value options, showing=<name>which suggests the syntax is--manifest=somethingwhen it's actually--manifestKey=Value.This affects all
@OptionGroupusages:-D/--properties(system properties)--manifest(JAR manifest entries)Additionally, some
@OptionListoptions are missing descriptions entirely (e.g.,--javaagent,--manifestshow no description text).Context
Found in jbang (jbangdev/jbang#2453). Picocli rendered these as
-D=<String=String>, making the key=value syntax clear.