commandlineparser / commandlineparser/commandline

Parser still recognizes --help option even when i set the parser setting "AutoHelp" to false

Open
#596 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
4.8k
Forks
478
PR merge metrics
No merged PRs in 30d

Description

(CommandlineParser version 2.7.82)

When using a parser with the `AutoHelp` setting set to `false` i would expect the parser to not recognize the `--help` option unless i have it explicitly declared as part of my options class. If i have no such declaration, i would expect the parser to treat `--help` as an unknown option/error. Unfortunately, this is not the case. The parser still recognizes this option, even when `AutoHelp` is set to false :(

The [documentation comment](https://github.com/commandlineparser/commandline/blob/017a8a21c79b223fbcd541187c7dd546c18ebdda/src/CommandLine/ParserSettings.cs#L140-L142) for `AutoHelp` (also shown by Intellisense) seems to support my expectations:

> Gets or sets a value indicating whether implicit option or verb 'help' should be supported.

But that does not seem to be what that setting actually does...

Thus my question: What is the actual purpose and supposed effect of setting `AutoHelp` for the parser to `false`? And how would i make `--help` not an option?

For example, if i use the unknown option `--foo`, the `HelpText.AutoBuild` method is able to generate a text containing:
```
ERROR(S):
Option 'foo' is unknown.
```

I want to get the same result when calling my program with the (unknown) option `--help`:

```
ERROR(S):
Option 'help' is unknown.
```
Unfortunately, the parser or `HelpText.AutoBuild` method seem to refuse to treat `--help` as an unknown option (both parser settings `AutoHelp` and `IgnoreUnknownArguments` are set to `false`)
:-(

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.