commandlineparser / commandlineparser/commandline

Join IEnumerable defaults with separator instead of space

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

描述

Source:
```cs
#:package CommandLineParser@2.9.1

using CommandLine;

return Parser.Default.ParseArguments(args).MapResult(
(Opts opts) => 0,
errors => 2
);

class Opts {
[Option("opt", Required = true, Separator = ',', Default = new[] { "AAA", "BBB", "CCC" }, HelpText = "boolean arg.")]
public IEnumerable MyOption { get; set; }
}
```

Output with `--help`:
```
test_cmdline 1.0.0
Copyright (C) 2026 test_cmdline

--opt Required. (Default: AAA BBB CCC) boolean arg.

--help Display this help screen.

--version Display version information.
```

Notice that the default argument's values are joined by spaces, which is misleading.
Since a separator is provided it should be used instead, so that the user could just copy-paste the resulting value directly and use it as argument. Currently there is no way to achieve this: see [here](https://github.com/commandlineparser/commandline/blob/1e3607b97af6141743edb3c434c06d5b492f6fb3/src/CommandLine/Text/HelpText.cs#L1125).

贡献指南

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

调研方向

从 src/CommandLine/Text/HelpText.cs 大约第 1125 行开始,这里会为帮助输出格式化默认 IEnumerable 值。跟踪选项配置的分隔符如何在格式化过程中可用,然后验证示例的 --help 输出在 AAA、BBB 和 CCC 之间使用逗号,以便将显示的默认值复制为参数。

由索引模型根据 Issue 内容生成。

评估

技术栈
csharp
领域
cli
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
冷清
描述清晰度
描述清楚
新手友好度
68/100

把新 issue 发到你的邮箱

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