dotnet / dotnet/command-line-api

Usage section shows Argument.Name rather than Argument.HelpName

Offen
#2,004 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Area-Help bug
Vorherrschende Sprache
C#
Sterne
3.7k
Forks
428
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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:

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie in src/System.CommandLine/Help/HelpBuilder.cs bei den Zeilen 296-304 und vergleichen Sie die Usage-Implementierung mit src/System.CommandLine/Help/HelpBuilder.Default.cs bei den Zeilen 73-87, wo der Abschnitt Arguments gerendert wird. Verwenden Sie die bereitgestellte Demo, um die inkonsistente Hilfeausgabe zu reproduzieren. Als erledigt gilt die Aufgabe, wenn der Abschnitt Usage Argument.HelpName anzeigt, sofern es gesetzt ist, und damit dem Abschnitt Arguments entspricht, während Argument.Name für das Binding beibehalten wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
cli
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.