commandline icon indicating copy to clipboard operation
commandline copied to clipboard

Option are displayed in lowercase in help

Open sybaris opened this issue 1 year ago • 2 comments

Describe the bug When no long or short name is provided for an option, the help display this option in lowercase

To Reproduce Run this console program adding in the command line "--help "

    class Options
    {
        [Option(HelpText = "Specify the input file.")]
        public string InputFile { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var result = Parser.Default.ParseArguments<Options>(args);
            result.WithParsed(options =>
                {
                    Console.WriteLine($"InputFile: {options.InputFile}");
                })
                .WithNotParsed(errors =>
                {
                });
        }
    }

Expected behavior "InputFile" instead of "inputfile"

Screenshots image

Additional context I saw that it's in Specification.cs class method FromProperty that there is a call to ToLowerInvariant() that make the display lower

sybaris avatar Jan 05 '24 09:01 sybaris

This is the default behaviour defined like this by the standard.

You can specify a custom longName for the option like this:

class Options
    {
        [Option(longName: "InputFile", HelpText = "Specify the input file.")]
        public string InputFile { get; set; }
    }

je-sendra avatar Feb 22 '24 10:02 je-sendra

Thanks for your answer. I agree that specifying a longname solves the problem. This requires specifying a longname for all options :-( But I find it really unfortunate to have this default behavior...

sybaris avatar Feb 26 '24 09:02 sybaris