Skip to content

[Feature request] Let HelpText.AutoBuild method populate HelpText instance according to parser settings #595

Open
@elgonzo

Description

@elgonzo

Currently, when setting AutoHelp and/or AutoVersion for the parser to false, the HelpText.AutoBuild method does not acknowledge those parser settings for the respective HelpText properties, thus forcing the user to repeat setting those settings for HelpText.

Right now, i have to write something like that:

    static void Main(string[] args)
    {
        using (var cmdLineParser = new Parser(settings => { settings.AutoHelp = false; settings.AutoVersion = false; }))
        {
            var parserResult = cmdLineParser.ParseArguments<SomeOptionsType>(args);
            parserResult
                .WithNotParsed(errors => DisplayHelp(parserResult, errors))
                .WithParsed(Execute);
        }
    }

    static void DisplayHelp<T>(ParserResult<T> result, IEnumerable<Error> errs)
    {
        var helpText = HelpText.AutoBuild(
            result,
            h =>
                {
                    h.AutoHelp = false;
                    h.AutoVersion = false;
                    return h;
                }
        );
        Console.WriteLine(helpText);
    }

Note how my code for the DisplayHelp method is forced to again set the AutoHelp and AutoVersion settings for the HelpText to false (since they default to true, despite the respective parser settings being set to false).

Ideally, it would be nice if HelpText.AutoBuild could initialize the HelpText instance with the values from any appropriate settings of the parser used to produce the ParserResult.

(Related discussion: #414)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions