dotnet / dotnet/command-line-api

Usage section shows Argument.Name rather than Argument.HelpName

Ouverte
#2,004 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Area-Help bug
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.