@@ -0,0 +1,1984 @@
+package picocli.examples.customhelp;%0A%0Aimport picocli.CommandLine;%0Aimport picocli.CommandLine.Command;%0Aimport picocli.CommandLine.Help;%0Aimport picocli.CommandLine.HelpCommand;%0Aimport picocli.CommandLine.IHelpFactory;%0Aimport picocli.CommandLine.Model.CommandSpec;%0Aimport picocli.CommandLine.Spec;%0A%0Aimport java.util.Map;%0Aimport java.util.TreeMap;%0A%0A/**%0A * This class has subcommands that are not declared alphabetically.%0A * We want the help for this class to show the subcommands alphabetically.%0A */%0A@Command(name = %22alphabetic%22,%0A        description = %22a command that shows subcommands sorted alphabetically%22,%0A        subcommands = %7BCharlie.class, Bravo.class, Alpha.class, HelpCommand.class%7D)%0Apublic class AlphabeticSubcommands implements Runnable %7B%0A%0A    @Spec CommandSpec spec;%0A%0A    @Override%0A    public void run() %7B%0A        spec.commandLine().usage(System.out);%0A    %7D%0A%0A    public static void main(String%5B%5D args) %7B%0A        CommandLine commandLine = new CommandLine(new AlphabeticSubcommands());%0A        commandLine.setHelpFactory(new IHelpFactory() %7B%0A            @Override%0A            public Help create(CommandSpec commandSpec, Help.ColorScheme colorScheme) %7B%0A                return new Help(commandSpec, colorScheme) %7B%0A                    /**%0A                     * Returns a sorted map of the subcommands.%0A                     */%0A                    @Override%0A                    protected Map%3CString, Help%3E subcommands() %7B%0A                        return new TreeMap%3C%3E(super.subcommands());%0A                    %7D%0A                %7D;%0A            %7D%0A        %7D);%0A        commandLine.execute(args);%0A    %7D%0A%7D%0A%0A@Command(name = %22charlie%22, description = %22my name starts with C%22)%0Aclass Charlie implements Runnable %7B%0A    public void run() %7B%7D%0A%7D%0A%0A@Command(name = %22bravo%22, description = %22my name starts with B%22)%0Aclass Bravo implements Runnable %7B%0A    public void run() %7B%7D%0A%7D%0A%0A@Command(name = %22alpha%22, description = %22my name starts with A%22)%0Aclass Alpha implements Runnable %7B%0A    public void run() %7B%7D%0A%7D%0A

add example for alphabetically sorting subcommands by subclassing `Help`