# Package picocli

Provides classes and interfaces for the main picocli command line parsing and `autocompletion` functionality.

See: Description

Interface Summary
Interface | Description
--- | ---
CommandLine.Help.Ansi.IStyle | Defines the interface for an ANSI escape sequence.
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.
CommandLine.Help.IParameterRenderer | When customizing online help for `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.
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.
CommandLine.IExceptionHandler | Represents a function that can handle a `ParameterException` that occurred while parsing the command line arguments.
CommandLine.IFactory | Factory for instantiating classes that are registered declaratively with annotation attributes, like `CommandLine.Command.subcommands()`, `CommandLine.Option.converter()`, `CommandLine.Parameters.converter()` and `CommandLine.Command.versionProvider()`.
CommandLine.IParseResultHandler | Represents a function that can process a List of `CommandLine` objects resulting from successfully parsing the command line arguments.
CommandLine.ITypeConverter<K> | When parsing command line arguments and initializing fields annotated with `@Option` or `@Parameters`, String values can be converted to any type for which a `ITypeConverter` is registered.
CommandLine.IVersionProvider | Provides version information for a command.

Class Summary
Class | Description
--- | ---
AutoComplete | Stand-alone tool that generates bash auto-complete scripts for picocli-based command line applications.
CommandLine | CommandLine interpreter that uses reflection to initialize an annotated domain object with values obtained from the command line arguments.
CommandLine.DefaultExceptionHandler | Default exception handler that prints the exception message to the specified `PrintStream`, followed by the usage message for the command or subcommand whose input was invalid.
CommandLine.Help | 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.
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.
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.
CommandLine.Help.Layout | Use a Layout to format usage help text for options and parameters in tabular format.
CommandLine.Help.TextTable | Responsible for spacing out `CommandLine.Help.Ansi.Text` values according to the `CommandLine.Help.Column` definitions the table was created with.
CommandLine.Help.TextTable.Cell | Helper class to index positions in a `Help.TextTable`.
CommandLine.Range | Describes the number of parameters required and accepted by an option or a positional parameter.
CommandLine.RunAll | Command line parse result handler that prints help if requested, and otherwise executes the top-level command and all subcommands as `Runnable` or `Callable`.
CommandLine.RunFirst | Command line parse result handler that prints help if requested, and otherwise executes the top-level `Runnable` or `Callable` command.
CommandLine.RunLast | Command line parse result handler that prints help if requested, and otherwise executes the most specific `Runnable` or `Callable` subcommand.

Enum Summary
Enum | Description
--- | ---
CommandLine.Help.Ansi | Provides methods and inner classes to support using ANSI escape codes in usage help messages.
CommandLine.Help.Ansi.Style | A set of pre-defined ANSI escape code styles and colors, and a set of convenience methods for parsing text with embedded markup style names, as well as convenience methods for converting styles to strings with embedded escape codes.
CommandLine.Help.Column.Overflow | Policy for handling text that is longer than the column width: span multiple columns, wrap to the next row, or simply truncate the portion that doesn't fit.

Exception Summary
Exception | Description
--- | ---
CommandLine.DuplicateOptionAnnotationsException | Exception indicating that multiple fields have been annotated with the same Option name.
CommandLine.ExecutionException | Exception indicating a problem while invoking a command or subcommand.
CommandLine.InitializationException | Exception indicating a problem during `CommandLine` initialization.
CommandLine.MaxValuesforFieldExceededException | Exception indicating that more values were specified for an option or parameter than its `arity` allows.
CommandLine.MissingParameterException | Exception indicating that a required parameter was not specified.
CommandLine.MissingTypeConverterException | Exception indicating that an annotated field had a type for which no `CommandLine.ITypeConverter` was registered.
CommandLine.OverwrittenOptionException | Exception indicating that an option for a single-value option field has been specified multiple times on the command line.
CommandLine.ParameterException | Exception indicating something went wrong while parsing command line options.
CommandLine.ParameterIndexGapException | Exception indicating that there was a gap in the indices of the fields annotated with `CommandLine.Parameters`.
CommandLine.PicocliException | Base class of all exceptions thrown by `picocli.CommandLine`.
CommandLine.TypeConversionException | Exception thrown by `CommandLine.ITypeConverter` implementations to indicate a String could not be converted.
CommandLine.UnmatchedArgumentException | Exception indicating that a command line argument could not be mapped to any of the fields annotated with `CommandLine.Option` or `CommandLine.Parameters`.

Annotation Types Summary
Annotation Type | Description
--- | ---
CommandLine.Command | Annotate your class with `@Command` when you want more control over the format of the generated help message.
CommandLine.Option | Annotate fields in your class with `@Option` and picocli will initialize these fields when matching arguments are specified on the command line.
CommandLine.Parameters | Fields annotated with `@Parameters` will be initialized with positional parameters.
CommandLine.ParentCommand | Fields annotated with `@ParentCommand` will be initialized with the parent command of the current subcommand.

## Package picocli Description

Provides classes and interfaces for the main picocli command line parsing and `autocompletion` functionality.

The `CommandLine` class is a one-file framework for creating Java command line applications with almost zero code. `CommandLine` is in a single file, so it can be included in source form. This lets users run picocli-based applications without requiring picocli as an external dependency.