Re: [CLI] - new FormatHelper produces poorly formatted option groups
Damien Carbonne <[email protected]> Thu, 30 Oct 2025 19:52:10 +0100
| Newsgroups | gmane.comp.jakarta.commons.user |
|---|---|
| Message-ID | <[email protected]> |
--------------NPe666aKb0mDpvveZB75zNud Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Sorry, -o3 Descr is not expected. My fault. Initialy the example had an o3 option, but I removed it to simplify the example. I forgot to remove it in one place. I should have written: I would expect the new formatter output to look like this: ------------------------------------- usage: Command [-o1 | -o2] Options Description -o1 Descr -o2 Descr Le 30/10/2025 à 16:05, Claude Warren a écrit : > I was on my phone when I first read this. But now I wonder how this is > wrong. > > The example adds 2 options o1 and o2 and a group comprising the 2 and the > expected output contains o1, o2, and o3. Where did o3 get its name? I > assume o3 is intended to be the group of 01 and 02, but I don't think those > were ever delineated in the output. Am I missing something? > > > > On Thu, Oct 30, 2025 at 12:47 PM Claude Warren<[email protected]> wrote: > >> Looks likeregression. I will take a look later today. >> >> Claude >> >> LinkedIn:http://www.linkedin.com/in/claudewarren >> >> On Thu 30 Oct 2025, 12:12 Gary Gregory,<[email protected]> wrote: >> >>> Claude, any thoughts here? I was just about to push a release candidate... >>> >>> Gary >>> >>> On Sun, Oct 26, 2025 at 10:38 AM 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 = new Option("o1", "Descr"); >>>> final Option o2 = new Option("o2", "Descr"); >>>> >>>> final Options options = new Options(); >>>> options.addOption(o1); >>>> options.addOption(o2); >>>> >>>> final OptionGroup group = new OptionGroup(); >>>> group.addOption(o1); >>>> group.addOption(o2); >>>> options.addOptionGroup(group); >>>> >>>> //format options with new formatter >>>> final org.apache.commons.cli.help.HelpFormatter newFormatter = >>>> >>> org.apache.commons.cli.help.HelpFormatter.builder().setShowSince(false).get(); >>>> newFormatter.printHelp("Command", null, options, null, true); >>>> >>>> // format options with old formatter >>>> final org.apache.commons.cli.HelpFormatter oldFormatter = >>>> 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] >>>> --------------NPe666aKb0mDpvveZB75zNud--