commandlineparser / commandlineparser/commandline
Join IEnumerable defaults with separator instead of space
- Langage dominant
- C#
- Étoiles
- 4.8k
- Forks
- 478
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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).
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez dans src/CommandLine/Text/HelpText.cs vers la ligne 1125, où les valeurs IEnumerable par défaut sont formatées pour la sortie d'aide. Suivez la manière dont le séparateur configuré de l'option est disponible pendant le formatage, puis vérifiez que la sortie --help de l'exemple utilise des virgules entre AAA, BBB et CCC afin que la valeur par défaut affichée puisse être copiée comme argument.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp
- Domaine
- cli
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- Calme
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 68/100