commandlineparser / commandlineparser/commandline

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

未关闭
#596 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C#
星标
4.8k
派生
478
PR 合并指标
30 天内没有已合并 PR

描述

(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`)
:-(

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。