Skip to content

Move HelpBuilder into a separate package #1930

Open
@jonsequitur

Description

@jonsequitur

While help output is required for building a good command line tool, the API surface to provide something flexible enough for people's various needs is large. The HelpBuilder and associated types (e.g. HelpContext) provide this today but the API is still unwieldy. We won't get it right in the System.CommandLine GA timeframe. Improvements in other areas (e.g. VT formatting and templates) will come along and will change the way we might design a better help formatting system.

Still, HelpBuilder is flexible and a lot of understanding and feedback have gone into it, so we don't want to lose its capabilities.

The proposal here is the following:

  • Move these types into a separate package where the API can be improved prior to removing it from preview.
  • Retain default help functionality in System.CommandLine so that the HelpBuilder package isn't required. However, this default help experience will not allow customization beyond what is available via the various CliSymbol properties, e.g. CliOption.HelpName.
  • Provide guidance on how to use this package and others from the community to replace the default help behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions