Skip to content

Help output loses type/syntax information for @OptionGroup (map) options #455

@stalep

Description

@stalep

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions