commandlineparser / commandlineparser/commandline

After customizing help generation, hep VERB does not work

未關閉
#633 16 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
question
主要語言
C#
星號
4.8k
分支
478
PR 合併指標
30 天內沒有已合併 PR

描述

Did this
```
static async Task Main( string[] args )
{
_logger.Info(CommandLine.Text.HeadingInfo.Default);

var parser = new Parser(p => { p.AutoVersion = false; p.CaseInsensitiveEnumValues = true; });
var parserResult = parser.ParseArguments(args);
await parserResult.MapResult(
(SyncOptions opts) => SyncAsync(opts),
(QueryOptions opts) => QueryAsync(opts),
(TokenOptions opts) => ShowTokenAsync(opts),
errors => Task.FromResult(DisplayHelp(parserResult, errors))
)
.ContinueWith(t => {
if ( System.Diagnostics.Debugger.IsAttached )
{
Console.WriteLine("Press enter...");
Console.ReadLine();
}
});
}

private static int DisplayHelp( ParserResult result, IEnumerable errs )
{
var helpText = CommandLine.Text.HelpText.AutoBuild(result, h =>
{
h.AdditionalNewLineAfterOption = false;
h.AddNewLineBetweenHelpSections = true;
h.AddEnumValuesToHelpText = true;
h.AutoVersion = false;
h.Heading = CommandLine.Text.HeadingInfo.Empty;
h.MaximumDisplayWidth = 110;
h.AddVerbs(typeof(SyncOptions), typeof(QueryOptions), typeof(TokenOptions));
return CommandLine.Text.HelpText.DefaultParsingErrorsHandler(result, h);
}, e => e,
true);
Console.WriteLine(helpText);
return 1;
}
```
Before this I could type `MyProgram help VERB` and it would tell me the same as `MyProgram VERB` minus errors section. Now this gives me only verb list, like if `help` lost its first argument. This does not work either: `MyProgram VERB help` but this does: `MyProgram VERB --help`.

Am I doing something wrong here?

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

Reproduce the behavior with the commands shown, then start at Parser.ParseArguments and the custom DisplayHelp method using HelpText.AutoBuild and DefaultParsingErrorsHandler. Compare `MyProgram help VERB`, `MyProgram VERB help`, and `MyProgram VERB --help`; done means the intended verb-specific help is produced for the documented command without losing its argument.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
csharp
領域
cli
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。