Re: [CLI] - new FormatHelper produces poorly formatted option groups

Gary Gregory <[email protected]> Thu, 30 Oct 2025 08:12:01 -0400
Newsgroups gmane.comp.jakarta.commons.user
Message-ID <CACZkXPzj9MVD3H=+ck=MRNzuZMCHgrJxkVOceUAGmcuWPETnOQ@mail.gmail.com>
Claude, any thoughts here? I was just about to push a release candidate...

Gary

On Sun, Oct 26, 2025 at 10:38=E2=80=AFAM Damien Carbonne
<[email protected]> wrote:
>
> Hi,
>
> When using the new HelpFormatter (commons-cli-1.10.0), option groups are
> poorly formatted.
>
> This looks like a regression.
> The following code shows the difference between the new HelpFormatter
> and the deprecated one:
> -------------------------------------
> import java.io.IOException;
>
> import org.apache.commons.cli.Option;
> import org.apache.commons.cli.OptionGroup;
> import org.apache.commons.cli.Options;
>
> public class CliTest {
>      public static void main(String[] args) throws IOException {
>          // create options and groups
>          final Option o1 =3D new Option("o1", "Descr");
>          final Option o2 =3D new Option("o2", "Descr");
>
>          final Options options =3D new Options();
>          options.addOption(o1);
>          options.addOption(o2);
>
>          final OptionGroup group =3D new OptionGroup();
>          group.addOption(o1);
>          group.addOption(o2);
>          options.addOptionGroup(group);
>
>          //format options with new formatter
>          final org.apache.commons.cli.help.HelpFormatter newFormatter =3D
> org.apache.commons.cli.help.HelpFormatter.builder().setShowSince(false).g=
et();
>          newFormatter.printHelp("Command", null, options, null, true);
>
>          // format options with old formatter
>          final org.apache.commons.cli.HelpFormatter oldFormatter =3D
>                  new org.apache.commons.cli.HelpFormatter();
>          oldFormatter.printHelp("Command", null, options, null, true);
>      }
> }
> -------------------------------------
>
> The output is:
> -------------------------------------
> usage:  Command [-o1] [-o2]
>   Options     Description
>   -o1         Descr
>   -o2         Descr
>
>
> usage: Command [-o1 | -o2]
>   -o1   Descr
>   -o2   Descr
> -------------------------------------
>
> Groups are not shown any more.
> I would expect the new formatter output to look like this:
> -------------------------------------
> usage: Command [-o1 | -o2]
> Options Description
> -o1 Descr
> -o2 Descr
> -o3 Descr
> -------------------------------------
>
> Regards,
> Damien Carbonne
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>