dotnet / dotnet/command-line-api
Usage section shows Argument.Name rather than Argument.HelpName
- Langage dominant
- C#
- Étoiles
- 3.7k
- Forks
- 428
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
In the help output, the Usage section shows Argument.Name, but the Arguments section shows Argument.HelpName. I think this is inconsistent and they should both use Argument.HelpName if set, so that Argument.Name would be culture-invariant and usable for System.CommandLine.NamingConventionBinder.
## Demo
```XML
Exe
net7.0
enable
enable
```
```
using System.CommandLine;
using System.IO;
var command = new RootCommand()
{
new Argument(name: "inputfile")
{
HelpName = "inputfile.log",
},
};
return await command.InvokeAsync(args);
```
```
$ dotnet run
Required argument missing for command: 'ArgumentHelpDemo'.
Description:
Usage:
ArgumentHelpDemo [options]
Arguments:
Options:
--version Show version information
-?, -h, --help Show help and usage information
```
## Current implementation
Usage section:
Arguments section:
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans src/System.CommandLine/Help/HelpBuilder.cs aux lignes 296-304 et comparez l’implémentation de Usage avec src/System.CommandLine/Help/HelpBuilder.Default.cs aux lignes 73-87, qui génère la section Arguments. Utilisez la démo fournie pour reproduire la sortie d’aide incohérente. C’est terminé lorsque la section Usage affiche Argument.HelpName lorsqu’il est défini, comme la section Arguments, tout en conservant Argument.Name pour le binding.
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é
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100