CommandLine.Help (picocli 3.9.6 API)
Date: 2019-04-06

picocli

## Class CommandLine.Help

- java.lang.Object
- - picocli.CommandLine.Help

- Enclosing class:
    CommandLine

      public static class CommandLine.Help
      extends java.lang.Object

  A collection of methods and inner classes that provide fine-grained control over the contents and layout of the usage help message to display to end users when help is requested or invalid input values were specified.

  ## Class Diagram of the CommandLine.Help API

  ## Layered API

  The `CommandLine.Command` annotation and the `CommandLine.Model.UsageMessageSpec` programmatic API equivalent provide the easiest way to configure the usage help message. See the Manual for details.

  This Help class provides high-level functions to create sections of the usage help message and headings for these sections. Instead of calling the `CommandLine.usage(PrintStream, CommandLine.Help.ColorScheme)` method, application authors may want to create a custom usage help message by reorganizing sections in a different order and/or adding custom sections.

  Finally, the Help class contains inner classes and interfaces that can be used to create custom help messages.

  ### IOptionRenderer and IParameterRenderer

  Renders a field annotated with `CommandLine.Option` or `CommandLine.Parameters` to an array of `CommandLine.Help.Ansi.Text` values. By default, these values are

  - mandatory marker character (if the option/parameter is `required`)
  - short option name (empty for parameters)
  - comma or empty (empty for parameters)
  - long option names (the parameter `label` for parameters)
  - description

  Other components rely on this ordering.

  ### Layout

  Delegates to the renderers to create `CommandLine.Help.Ansi.Text` values for the annotated fields, and uses a `CommandLine.Help.TextTable` to display these values in tabular format. Layout is responsible for deciding which values to display where in the table. By default, Layout shows one option or parameter per table row.

  ### TextTable

  Responsible for spacing out `CommandLine.Help.Ansi.Text` values according to the `CommandLine.Help.Column` definitions the table was created with. Columns have a width, indentation, and an overflow policy that decides what to do if a value is longer than the column's width.

  ### Text

  Encapsulates rich text with styles and colors in a way that other components like `CommandLine.Help.TextTable` are unaware of the embedded ANSI escape codes.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `CommandLine.Help.Ansi` Provides methods and inner classes to support using ANSI escape codes in usage help messages.
    `static class` | `CommandLine.Help.ColorScheme` All usage help message are generated with a color scheme that assigns certain styles and colors to common parts of a usage message: the command name, options, positional parameters and option parameters.
    `static class` | `CommandLine.Help.Column` Columns define the width, indent (leading number of spaces in a column before the value) and Overflow policy of a column in a TextTable.
    `static interface` | `CommandLine.Help.IOptionRenderer` When customizing online help for `Option` details, a custom `IOptionRenderer` can be used to create textual representation of an Option in a tabular format: one or more rows, each containing one or more columns.
    `static interface` | `CommandLine.Help.IParameterRenderer` When customizing online help for positional parameters details, a custom `IParameterRenderer` can be used to create textual representation of a Parameters field in a tabular format: one or more rows, each containing one or more columns.
    `static interface` | `CommandLine.Help.IParamLabelRenderer` When customizing online usage help for an option parameter or a positional parameter, a custom `IParamLabelRenderer` can be used to render the parameter name or label to a String.
    `static class` | `CommandLine.Help.Layout` Use a Layout to format usage help text for options and parameters in tabular format.
    `static class` | `CommandLine.Help.TextTable` Responsible for spacing out `CommandLine.Help.Ansi.Text` values according to the `CommandLine.Help.Column` definitions the table was created with.
    `static class` | `CommandLine.Help.Visibility` Controls the visibility of certain aspects of the usage help message.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static java.lang.String` | `DEFAULT_COMMAND_NAME` Constant String holding the default program name, value defined in `CommandLine.Model.CommandSpec.DEFAULT_COMMAND_NAME`.
    `protected static java.lang.String` | `DEFAULT_SEPARATOR` Constant String holding the default string that separates options from option parameters, value defined in `CommandLine.Model.ParserSpec.DEFAULT_SEPARATOR`.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Help(CommandLine.Model.CommandSpec commandSpec, CommandLine.Help.ColorScheme colorScheme)` Constructs a new `Help` instance with the specified color scheme, initialized from annotatations on the specified class and superclasses.
    `Help(java.lang.Object command)` Constructs a new `Help` instance with a default color scheme, initialized from annotatations on the specified class and superclasses.
    `Help(java.lang.Object command, CommandLine.Help.Ansi ansi)` Constructs a new `Help` instance with a default color scheme, initialized from annotatations on the specified class and superclasses.
    `Help(java.lang.Object command, CommandLine.Help.ColorScheme colorScheme)` Deprecated. use `picocli.CommandLine.Help#Help(picocli.CommandLine.Model.CommandSpec, picocli.CommandLine.Help.ColorScheme)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `abbreviatedSynopsis()` Generates a generic synopsis like `<command name> [OPTIONS] [PARAM1 [PARAM2]...]`, omitting parts that don't apply to the command (e.g., does not show [OPTIONS] if the command has no options).
    `CommandLine.Help` | `addAllSubcommands(java.util.Map<java.lang.String,CommandLine> commands)` Registers all specified subcommands with this Help.
    `CommandLine.Help` | `addSubcommand(java.lang.String commandName, java.lang.Object command)` Deprecated.
    `protected java.util.List<java.lang.String>` | `aliases()` Returns the list of aliases for the command in this Help.
    `CommandLine.Help.Ansi` | `ansi()` Returns whether ANSI escape codes are enabled or not.
    `CommandLine.Help.ColorScheme` | `colorScheme()` Returns the `ColorScheme` model that this Help was constructed with.
    `java.lang.String` | `commandList()` Returns a 2-column list with command names and the first line of their header or (if absent) description.
    `java.lang.String` | `commandListHeading(java.lang.Object... params)` Returns the text displayed before the command list; an empty string if there are no commands, otherwise the result of `String.format(commandListHeading, params)`.
    `CommandLine.Help.Ansi.Text` | `commandNamesText(java.lang.String separator)` Returns a `Text` object containing the command name and all aliases, separated with the specified separator.
    `CommandLine.Model.CommandSpec` | `commandSpec()` Returns the `CommandSpec` model that this Help was constructed with.
    `CommandLine.Help.Layout` | `createDefaultLayout()` Returns a `Layout` instance configured with the user preferences captured in this Help instance.
    `CommandLine.Help.IOptionRenderer` | `createDefaultOptionRenderer()` Returns a new default OptionRenderer which converts `Options` to five columns of text to match the default TextTable column layout.
    `CommandLine.Help.IParameterRenderer` | `createDefaultParameterRenderer()` Returns a new default ParameterRenderer which converts positional parameters to four columns of text to match the default TextTable column layout.
    `CommandLine.Help.IParamLabelRenderer` | `createDefaultParamLabelRenderer()` Returns a new default param label renderer that separates option parameters from their option name with the specified separator string, and, unless `CommandLine.Model.ArgSpec.hideParamSyntax()` is true, surrounds optional parameters with `'['` and `']'` characters and uses ellipses ("...") to indicate that any number of a parameter are allowed.
    `protected CommandLine.Help.Ansi.Text` | `createDetailedSynopsisCommandText()` Returns a Text object containing a partial detailed synopsis showing only the subcommands, starting with a `" "` space.
    `protected CommandLine.Help.Ansi.Text` | `createDetailedSynopsisOptionsText(java.util.Comparator<CommandLine.Model.OptionSpec> optionSort, boolean clusterBooleanOptions)` Returns a Text object containing a partial detailed synopsis showing only the options, starting with a `" "` space.
    `protected CommandLine.Help.Ansi.Text` | `createDetailedSynopsisPositionalsText()` Returns a Text object containing a partial detailed synopsis showing only the positional parameters, starting with a `" "` space.
    `static CommandLine.Help.IOptionRenderer` | `createMinimalOptionRenderer()` Returns a new minimal OptionRenderer which converts `Options` to a single row with two columns of text: an option name and a description.
    `static CommandLine.Help.IParameterRenderer` | `createMinimalParameterRenderer()` Returns a new minimal ParameterRenderer which converts positional parameters to a single row with two columns of text: an option name and a description.
    `static CommandLine.Help.IParamLabelRenderer` | `createMinimalParamLabelRenderer()` Returns a value renderer that returns the `paramLabel` if defined or the field name otherwise.
    `static java.util.Comparator<CommandLine.Model.OptionSpec>` | `createShortOptionArityAndNameComparator()` Sorts `OptionSpecs` by their option max arity first, by min arity next, and by option name last.
    `static java.util.Comparator<CommandLine.Model.OptionSpec>` | `createShortOptionNameComparator()` Sorts `OptionSpecs` by their option name in case-insensitive alphabetic order.
    `java.lang.String` | `customSynopsis(java.lang.Object... params)` Returns command custom synopsis as a string.
    `static CommandLine.Help.ColorScheme` | `defaultColorScheme(CommandLine.Help.Ansi ansi)` Creates and returns a new `CommandLine.Help.ColorScheme` initialized with picocli default values: commands are bold, options and parameters use a yellow foreground, and option parameters use italic.
    `java.lang.String` | `description(java.lang.Object... params)` Returns command description text as a string.
    `java.lang.String` | `descriptionHeading(java.lang.Object... params)` Returns the text displayed before the description text; an empty string if there is no description, otherwise the result of `String.format(descriptionHeading, params)`.
    `java.lang.String` | `detailedSynopsis(java.util.Comparator<CommandLine.Model.OptionSpec> optionSort, boolean clusterBooleanOptions)` Deprecated. use `detailedSynopsis(int, Comparator, boolean)` instead.
    `java.lang.String` | `detailedSynopsis(int synopsisHeadingLength, java.util.Comparator<CommandLine.Model.OptionSpec> optionSort, boolean clusterBooleanOptions)` Generates a detailed synopsis message showing all options and parameters.
    `java.lang.String` | `footer(java.lang.Object... params)` Returns command footer text as a string.
    `java.lang.String` | `footerHeading(java.lang.Object... params)` Returns the text displayed before the footer text; the result of `String.format(footerHeading, params)`.
    `java.lang.String` | `header(java.lang.Object... params)` Returns the command header text as a string.
    `java.lang.String` | `headerHeading(java.lang.Object... params)` Returns the text displayed before the header text; the result of `String.format(headerHeading, params)`.
    `protected java.lang.String` | `insertSynopsisCommandName(int synopsisHeadingLength, CommandLine.Help.Ansi.Text optionsAndPositionalsAndCommandsDetails)` Returns the detailed synopsis text by inserting the command name before the specified text with options and positional parameters details.
    `static java.lang.StringBuilder` | `join(CommandLine.Help.Ansi ansi, int usageHelpWidth, java.lang.String[] values, java.lang.StringBuilder sb, java.lang.Object... params)` Formats each of the specified values and appends it to the specified StringBuilder.
    `java.lang.String` | `optionList()` Returns a description of the options supported by the application.
    `java.lang.String` | `optionList(CommandLine.Help.Layout layout, java.util.Comparator<CommandLine.Model.OptionSpec> optionSort, CommandLine.Help.IParamLabelRenderer valueLabelRenderer)` Sorts all `Options` with the specified `comparator` (if the comparator is non-`null`), then adds all non-hidden options to the specified TextTable and returns the result of TextTable.toString().
    `java.lang.String` | `optionListHeading(java.lang.Object... params)` Returns the text displayed before the option list; an empty string if there are no options, otherwise the result of `String.format(optionListHeading, params)`.
    `CommandLine.Help.IParamLabelRenderer` | `parameterLabelRenderer()` Option and positional parameter value label renderer used for the synopsis line(s) and the option list.
    `java.lang.String` | `parameterList()` Returns the section of the usage help message that lists the parameters with their descriptions.
    `java.lang.String` | `parameterList(CommandLine.Help.Layout layout, CommandLine.Help.IParamLabelRenderer paramLabelRenderer)` Returns the section of the usage help message that lists the parameters with their descriptions.
    `java.lang.String` | `parameterListHeading(java.lang.Object... params)` Returns the text displayed before the positional parameter list; an empty string if there are no positional parameters, otherwise the result of `String.format(parameterListHeading, params)`.
    `static java.util.Comparator<java.lang.String>` | `shortestFirst()` Sorts short strings before longer strings.
    `protected java.util.Map<java.lang.String,CommandLine.Help>` | `subcommands()` Returns the map of subcommand `Help` instances for this command Help.
    `java.lang.String` | `synopsis()` Deprecated. use `synopsis(int)` instead
    `java.lang.String` | `synopsis(int synopsisHeadingLength)` Returns a synopsis for the command, reserving the specified space for the synopsis heading.
    `java.lang.String` | `synopsisHeading(java.lang.Object... params)` Returns the text displayed before the synopsis text; the result of `String.format(synopsisHeading, params)`.
    `int` | `synopsisHeadingLength()` Returns the number of characters the synopsis heading will take on the same line as the synopsis.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_COMMAND_NAME

          protected static final java.lang.String DEFAULT_COMMAND_NAME

      Constant String holding the default program name, value defined in `CommandLine.Model.CommandSpec.DEFAULT_COMMAND_NAME`.
      See Also:
        Constant Field Values

    - #### DEFAULT_SEPARATOR

          protected static final java.lang.String DEFAULT_SEPARATOR

      Constant String holding the default string that separates options from option parameters, value defined in `CommandLine.Model.ParserSpec.DEFAULT_SEPARATOR`.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Help

          public Help(java.lang.Object command)

      Constructs a new `Help` instance with a default color scheme, initialized from annotatations on the specified class and superclasses.
      Parameters:
        `command` - the annotated object to create usage help for

    - #### Help

          public Help(java.lang.Object command,
                      CommandLine.Help.Ansi ansi)

      Constructs a new `Help` instance with a default color scheme, initialized from annotatations on the specified class and superclasses.
      Parameters:
        `command` - the annotated object to create usage help for
        `ansi` - whether to emit ANSI escape codes or not

    - #### Help

          @Deprecated
          public Help(java.lang.Object command,
                                   CommandLine.Help.ColorScheme colorScheme)

      Deprecated. use `picocli.CommandLine.Help#Help(picocli.CommandLine.Model.CommandSpec, picocli.CommandLine.Help.ColorScheme)`
      Constructs a new `Help` instance with the specified color scheme, initialized from annotatations on the specified class and superclasses.
      Parameters:
        `command` - the annotated object to create usage help for
        `colorScheme` - the color scheme to use

    - #### Help

          public Help(CommandLine.Model.CommandSpec commandSpec,
                      CommandLine.Help.ColorScheme colorScheme)

      Constructs a new `Help` instance with the specified color scheme, initialized from annotatations on the specified class and superclasses.
      Parameters:
        `commandSpec` - the command model to create usage help for
        `colorScheme` - the color scheme to use

  - ### Method Detail

    - #### commandSpec

          public CommandLine.Model.CommandSpec commandSpec()

      Returns the `CommandSpec` model that this Help was constructed with.
      Since:
        3.9

    - #### colorScheme

          public CommandLine.Help.ColorScheme colorScheme()

      Returns the `ColorScheme` model that this Help was constructed with.
      Since:
        3.0

    - #### subcommands

          protected java.util.Map<java.lang.String,CommandLine.Help> subcommands()

      Returns the map of subcommand `Help` instances for this command Help.
      Since:
        3.9

    - #### aliases

          protected java.util.List<java.lang.String> aliases()

      Returns the list of aliases for the command in this Help.
      Since:
        3.9

    - #### parameterLabelRenderer

          public CommandLine.Help.IParamLabelRenderer parameterLabelRenderer()

      Option and positional parameter value label renderer used for the synopsis line(s) and the option list. By default initialized to the result of `createDefaultParamLabelRenderer()`, which takes a snapshot of the `CommandLine.Model.ParserSpec.separator()` at construction time. If the separator is modified after Help construction, you may need to re-initialize this field by calling `createDefaultParamLabelRenderer()` again.

    - #### addAllSubcommands

          public CommandLine.Help addAllSubcommands(java.util.Map<java.lang.String,CommandLine> commands)

      Registers all specified subcommands with this Help.
      Parameters:
        `commands` - maps the command names to the associated CommandLine object
      Returns:
        this Help instance (for method chaining)
      See Also:
        `CommandLine.getSubcommands()`

    - #### addSubcommand

          @Deprecated
          public CommandLine.Help addSubcommand(java.lang.String commandName,
                                                             java.lang.Object command)

      Deprecated.
      Registers the specified subcommand with this Help.
      Parameters:
        `commandName` - the name of the subcommand to display in the usage message
        `command` - the `CommandSpec` or `@Command` annotated object to get more information from
      Returns:
        this Help instance (for method chaining)

    - #### synopsis

          @Deprecated
          public java.lang.String synopsis()

      Deprecated. use `synopsis(int)` instead
      Returns a synopsis for the command without reserving space for the synopsis heading.
      Returns:
        a synopsis
      See Also:
        `abbreviatedSynopsis()`, `detailedSynopsis(Comparator, boolean)`

    - #### synopsis

          public java.lang.String synopsis(int synopsisHeadingLength)

      Returns a synopsis for the command, reserving the specified space for the synopsis heading.
      Parameters:
        `synopsisHeadingLength` - the length of the synopsis heading that will be displayed on the same line
      Returns:
        a synopsis
      See Also:
        `abbreviatedSynopsis()`, `detailedSynopsis(Comparator, boolean)`, `synopsisHeading(java.lang.Object...)`

    - #### abbreviatedSynopsis

          public java.lang.String abbreviatedSynopsis()

      Generates a generic synopsis like `<command name> [OPTIONS] [PARAM1 [PARAM2]...]`, omitting parts that don't apply to the command (e.g., does not show [OPTIONS] if the command has no options).
      Returns:
        a generic synopsis

    - #### detailedSynopsis

          @Deprecated
          public java.lang.String detailedSynopsis(java.util.Comparator<CommandLine.Model.OptionSpec> optionSort,
                                                                boolean clusterBooleanOptions)

      Deprecated. use `detailedSynopsis(int, Comparator, boolean)` instead.
      Generates a detailed synopsis message showing all options and parameters. Follows the unix convention of showing optional options and parameters in square brackets (`[ ]`).
      Parameters:
        `optionSort` - comparator to sort options or `null` if options should not be sorted
        `clusterBooleanOptions` - `true` if boolean short options should be clustered into a single string
      Returns:
        a detailed synopsis

    - #### detailedSynopsis

          public java.lang.String detailedSynopsis(int synopsisHeadingLength,
                                                   java.util.Comparator<CommandLine.Model.OptionSpec> optionSort,
                                                   boolean clusterBooleanOptions)

      Generates a detailed synopsis message showing all options and parameters. Follows the unix convention of showing optional options and parameters in square brackets (`[ ]`).
      Parameters:
        `synopsisHeadingLength` - the length of the synopsis heading that will be displayed on the same line
        `optionSort` - comparator to sort options or `null` if options should not be sorted
        `clusterBooleanOptions` - `true` if boolean short options should be clustered into a single string
      Returns:
        a detailed synopsis
      Since:
        3.0

    - #### createDetailedSynopsisOptionsText

          protected CommandLine.Help.Ansi.Text createDetailedSynopsisOptionsText(java.util.Comparator<CommandLine.Model.OptionSpec> optionSort,
                                                                                 boolean clusterBooleanOptions)

      Returns a Text object containing a partial detailed synopsis showing only the options, starting with a `" "` space. Follows the unix convention of showing optional options and parameters in square brackets (`[ ]`).
      Parameters:
        `optionSort` - comparator to sort options or `null` if options should not be sorted
        `clusterBooleanOptions` - `true` if boolean short options should be clustered into a single string
      Returns:
        the formatted options, starting with a `" "` space, or an empty Text if this command has no named options
      Since:
        3.9

    - #### createDetailedSynopsisPositionalsText

          protected CommandLine.Help.Ansi.Text createDetailedSynopsisPositionalsText()

      Returns a Text object containing a partial detailed synopsis showing only the positional parameters, starting with a `" "` space. Follows the unix convention of showing optional options and parameters in square brackets (`[ ]`).
      Returns:
        the formatted positional parameters, starting with a `" "` space, or an empty Text if this command has no positional parameters
      Since:
        3.9

    - #### createDetailedSynopsisCommandText

          protected CommandLine.Help.Ansi.Text createDetailedSynopsisCommandText()

      Returns a Text object containing a partial detailed synopsis showing only the subcommands, starting with a `" "` space. Follows the unix convention of showing optional elements in square brackets (`[ ]`).
      Returns:
        this implementation returns a hard-coded string `" [COMMAND]"` if this command has subcommands, an empty Text otherwise
      Since:
        3.9

    - #### insertSynopsisCommandName

          protected java.lang.String insertSynopsisCommandName(int synopsisHeadingLength,
                                                               CommandLine.Help.Ansi.Text optionsAndPositionalsAndCommandsDetails)

      Returns the detailed synopsis text by inserting the command name before the specified text with options and positional parameters details.
      Parameters:
        `synopsisHeadingLength` - length of the synopsis heading string to be displayed on the same line as the first synopsis line. For example, if the synopsis heading is `"Usage: "`, this value is 7.
        `optionsAndPositionalsAndCommandsDetails` - formatted string with options, positional parameters and subcommands. Follows the unix convention of showing optional options and parameters in square brackets (`[ ]`).
      Returns:
        the detailed synopsis text, in multiple lines if the length exceeds the usage width

    - #### synopsisHeadingLength

          public int synopsisHeadingLength()

      Returns the number of characters the synopsis heading will take on the same line as the synopsis.
      Returns:
        the number of characters the synopsis heading will take on the same line as the synopsis.
      See Also:
        `detailedSynopsis(int, Comparator, boolean)`

    - #### optionList

          public java.lang.String optionList()

      Returns a description of the options supported by the application. This implementation sorts options alphabetically, and shows only the non-hidden options in a tabular format using the default renderer and default layout.

      Returns:
        the fully formatted option list
      See Also:
        `optionList(Layout, Comparator, IParamLabelRenderer)`

    - #### optionList

          public java.lang.String optionList(CommandLine.Help.Layout layout,
                                             java.util.Comparator<CommandLine.Model.OptionSpec> optionSort,
                                             CommandLine.Help.IParamLabelRenderer valueLabelRenderer)

      Sorts all `Options` with the specified `comparator` (if the comparator is non-`null`), then adds all non-hidden options to the specified TextTable and returns the result of TextTable.toString().
      Parameters:
        `layout` - responsible for rendering the option list
        `optionSort` - determines in what order `Options` should be listed. Declared order if `null`
        `valueLabelRenderer` - used for options with a parameter
      Returns:
        the fully formatted option list
      Since:
        3.0

    - #### parameterList

          public java.lang.String parameterList()

      Returns the section of the usage help message that lists the parameters with their descriptions.
      Returns:
        the section of the usage help message that lists the parameters

    - #### parameterList

          public java.lang.String parameterList(CommandLine.Help.Layout layout,
                                                CommandLine.Help.IParamLabelRenderer paramLabelRenderer)

      Returns the section of the usage help message that lists the parameters with their descriptions.
      Parameters:
        `layout` - the layout to use
        `paramLabelRenderer` - for rendering parameter names
      Returns:
        the section of the usage help message that lists the parameters

    - #### join

          public static java.lang.StringBuilder join(CommandLine.Help.Ansi ansi,
                                                     int usageHelpWidth,
                                                     java.lang.String[] values,
                                                     java.lang.StringBuilder sb,
                                                     java.lang.Object... params)

      Formats each of the specified values and appends it to the specified StringBuilder.
      Parameters:
        `ansi` - whether the result should contain ANSI escape codes or not
        `usageHelpWidth` - the width of the usage help message
        `values` - the values to format and append to the StringBuilder
        `sb` - the StringBuilder to collect the formatted strings
        `params` - the parameters to pass to the format method when formatting each value
      Returns:
        the specified StringBuilder

    - #### customSynopsis

          public java.lang.String customSynopsis(java.lang.Object... params)

      Returns command custom synopsis as a string. A custom synopsis can be zero or more lines, and can be specified declaratively with the `CommandLine.Command.customSynopsis()` annotation attribute or programmatically by setting the Help instance's `customSynopsis(java.lang.Object...)` field.
      Parameters:
        `params` - Arguments referenced by the format specifiers in the synopsis strings
      Returns:
        the custom synopsis lines combined into a single String (which may be empty)

    - #### description

          public java.lang.String description(java.lang.Object... params)

      Returns command description text as a string. Description text can be zero or more lines, and can be specified declaratively with the `CommandLine.Command.description()` annotation attribute or programmatically by setting the Help instance's `description(java.lang.Object...)` field.
      Parameters:
        `params` - Arguments referenced by the format specifiers in the description strings
      Returns:
        the description lines combined into a single String (which may be empty)

    - #### header

          public java.lang.String header(java.lang.Object... params)

      Returns the command header text as a string. Header text can be zero or more lines, and can be specified declaratively with the `CommandLine.Command.header()` annotation attribute or programmatically by setting the Help instance's `header(java.lang.Object...)` field.
      Parameters:
        `params` - Arguments referenced by the format specifiers in the header strings
      Returns:
        the header lines combined into a single String (which may be empty)

    - #### footer

          public java.lang.String footer(java.lang.Object... params)

      Returns command footer text as a string. Footer text can be zero or more lines, and can be specified declaratively with the `CommandLine.Command.footer()` annotation attribute or programmatically by setting the Help instance's `footer(java.lang.Object...)` field.
      Parameters:
        `params` - Arguments referenced by the format specifiers in the footer strings
      Returns:
        the footer lines combined into a single String (which may be empty)

    - #### headerHeading

          public java.lang.String headerHeading(java.lang.Object... params)

      Returns the text displayed before the header text; the result of `String.format(headerHeading, params)`.
      Parameters:
        `params` - the parameters to use to format the header heading
      Returns:
        the formatted header heading

    - #### synopsisHeading

          public java.lang.String synopsisHeading(java.lang.Object... params)

      Returns the text displayed before the synopsis text; the result of `String.format(synopsisHeading, params)`.
      Parameters:
        `params` - the parameters to use to format the synopsis heading
      Returns:
        the formatted synopsis heading

    - #### descriptionHeading

          public java.lang.String descriptionHeading(java.lang.Object... params)

      Returns the text displayed before the description text; an empty string if there is no description, otherwise the result of `String.format(descriptionHeading, params)`.
      Parameters:
        `params` - the parameters to use to format the description heading
      Returns:
        the formatted description heading

    - #### parameterListHeading

          public java.lang.String parameterListHeading(java.lang.Object... params)

      Returns the text displayed before the positional parameter list; an empty string if there are no positional parameters, otherwise the result of `String.format(parameterListHeading, params)`.
      Parameters:
        `params` - the parameters to use to format the parameter list heading
      Returns:
        the formatted parameter list heading

    - #### optionListHeading

          public java.lang.String optionListHeading(java.lang.Object... params)

      Returns the text displayed before the option list; an empty string if there are no options, otherwise the result of `String.format(optionListHeading, params)`.
      Parameters:
        `params` - the parameters to use to format the option list heading
      Returns:
        the formatted option list heading

    - #### commandListHeading

          public java.lang.String commandListHeading(java.lang.Object... params)

      Returns the text displayed before the command list; an empty string if there are no commands, otherwise the result of `String.format(commandListHeading, params)`.
      Parameters:
        `params` - the parameters to use to format the command list heading
      Returns:
        the formatted command list heading

    - #### footerHeading

          public java.lang.String footerHeading(java.lang.Object... params)

      Returns the text displayed before the footer text; the result of `String.format(footerHeading, params)`.
      Parameters:
        `params` - the parameters to use to format the footer heading
      Returns:
        the formatted footer heading

    - #### commandList

          public java.lang.String commandList()

      Returns a 2-column list with command names and the first line of their header or (if absent) description.
      Returns:
        a usage help section describing the added commands

    - #### commandNamesText

          public CommandLine.Help.Ansi.Text commandNamesText(java.lang.String separator)

      Returns a `Text` object containing the command name and all aliases, separated with the specified separator. Command names will use the `command style` for the color scheme of this Help.
      Since:
        3.9

    - #### createDefaultLayout

          public CommandLine.Help.Layout createDefaultLayout()

      Returns a `Layout` instance configured with the user preferences captured in this Help instance.
      Returns:
        a Layout

    - #### createDefaultOptionRenderer

          public CommandLine.Help.IOptionRenderer createDefaultOptionRenderer()

      Returns a new default OptionRenderer which converts `Options` to five columns of text to match the default TextTable column layout. The first row of values looks like this:
      1. the required option marker
      2. 2-character short option name (or empty string if no short option exists)
      3. comma separator (only if both short option and long option exist, empty string otherwise)
      4. comma-separated string with long option name(s)
      5. first element of the `CommandLine.Model.OptionSpec.description()` array

      Following this, there will be one row for each of the remaining elements of the `CommandLine.Model.OptionSpec.description()` array, and these rows look like `{"", "", "", "", option.description()[i]}`.

      If configured, this option renderer adds an additional row to display the default field value.

      Returns:
        a new default OptionRenderer

    - #### createMinimalOptionRenderer

          public static CommandLine.Help.IOptionRenderer createMinimalOptionRenderer()

      Returns a new minimal OptionRenderer which converts `Options` to a single row with two columns of text: an option name and a description. If multiple names or descriptions exist, the first value is used.
      Returns:
        a new minimal OptionRenderer

    - #### createDefaultParameterRenderer

          public CommandLine.Help.IParameterRenderer createDefaultParameterRenderer()

      Returns a new default ParameterRenderer which converts positional parameters to four columns of text to match the default TextTable column layout. The first row of values looks like this:
      1. empty string
      2. empty string
      3. parameter(s) label as rendered by the `CommandLine.Help.IParamLabelRenderer`
      4. first element of the `CommandLine.Model.PositionalParamSpec.description()` array

      Following this, there will be one row for each of the remaining elements of the `CommandLine.Model.PositionalParamSpec.description()` array, and these rows look like `{"", "", "", param.description()[i]}`.

      If configured, this parameter renderer adds an additional row to display the default field value.

      Returns:
        a new default ParameterRenderer

    - #### createMinimalParameterRenderer

          public static CommandLine.Help.IParameterRenderer createMinimalParameterRenderer()

      Returns a new minimal ParameterRenderer which converts positional parameters to a single row with two columns of text: an option name and a description. If multiple descriptions exist, the first value is used.
      Returns:
        a new minimal ParameterRenderer

    - #### createMinimalParamLabelRenderer

          public static CommandLine.Help.IParamLabelRenderer createMinimalParamLabelRenderer()

      Returns a value renderer that returns the `paramLabel` if defined or the field name otherwise.
      Returns:
        a new minimal ParamLabelRenderer

    - #### createDefaultParamLabelRenderer

          public CommandLine.Help.IParamLabelRenderer createDefaultParamLabelRenderer()

      Returns a new default param label renderer that separates option parameters from their option name with the specified separator string, and, unless `CommandLine.Model.ArgSpec.hideParamSyntax()` is true, surrounds optional parameters with `'['` and `']'` characters and uses ellipses ("...") to indicate that any number of a parameter are allowed.
      Returns:
        a new default ParamLabelRenderer

    - #### createShortOptionNameComparator

          public static java.util.Comparator<CommandLine.Model.OptionSpec> createShortOptionNameComparator()

      Sorts `OptionSpecs` by their option name in case-insensitive alphabetic order. If an option has multiple names, the shortest name is used for the sorting. Help options follow non-help options.
      Returns:
        a comparator that sorts OptionSpecs by their option name in case-insensitive alphabetic order

    - #### createShortOptionArityAndNameComparator

          public static java.util.Comparator<CommandLine.Model.OptionSpec> createShortOptionArityAndNameComparator()

      Sorts `OptionSpecs` by their option max arity first, by min arity next, and by option name last.
      Returns:
        a comparator that sorts OptionSpecs by arity first, then their option name

    - #### shortestFirst

          public static java.util.Comparator<java.lang.String> shortestFirst()

      Sorts short strings before longer strings.
      Returns:
        a comparators that sorts short strings before longer strings

    - #### ansi

          public CommandLine.Help.Ansi ansi()

      Returns whether ANSI escape codes are enabled or not.
      Returns:
        whether ANSI escape codes are enabled or not

    - #### defaultColorScheme

          public static CommandLine.Help.ColorScheme defaultColorScheme(CommandLine.Help.Ansi ansi)

      Creates and returns a new `CommandLine.Help.ColorScheme` initialized with picocli default values: commands are bold, options and parameters use a yellow foreground, and option parameters use italic.
      Parameters:
        `ansi` - whether the usage help message should contain ANSI escape codes or not
      Returns:
        a new default color scheme