Multi instance setting ignored when default verb is parsed.
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza reproduciendo el problema con el ejemplo proporcionado de ParseArguments y MapResult, especialmente argTest5, y sigue cómo se analiza el verbo predeterminado con AllowMultiInstance habilitado. Se considera terminado cuando el verbo predeterminado acepta valores de opción repetidos sin informar de que la opción está definida varias veces, mientras los demás ejemplos siguen analizándose correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
When using the function "MapResult" to parse multiple verbs, the parser ignores the setting "AllowMultiInstance" while parsing the default verb.
Lib version: 2.9.1
Language: C#
To Reproduce
Test the following demo code to see the result.
Demo Class Options:
[Verb("log", isDefault:true, HelpText = "Log command")]
class LogOptions
{
[Option('a', HelpText = "Option A for log command")]
public IEnumerable<string> OptionA { get; set; }
[Option('b', HelpText = "Option B for log command")]
public IEnumerable<string> OptionB { get; set; }
}
[Verb("save", HelpText = "Save command")]
class SaveOptions
{
[Option('d', HelpText = "Option D for save command")]
public IEnumerable<string> OptionD { get; set; }
[Option('e', HelpText = "Option E for save command")]
public IEnumerable<string> OptionE { get; set; }
}
Demo code:
Parser parser = new(x =>
{
x.HelpWriter = Console.Out;
x.IgnoreUnknownArguments = true;
x.AllowMultiInstance = true;
x.AutoHelp = true;
});
var argTest1 = "log -a valueA -b valueB" .Split(' '); // This works.
var argTest2 = "save -d valueD -e valueE".Split(' '); // This works.
var argTest3 = "-a valueA -b valueB".Split(' '); // This works.
var argTest4 = "log -a valueA -b valueB -b valueB2".Split(' '); // This works.
var argTest5 = " -a valueA -b valueB -b valueB2".Split(' '); // This don't work.
var res = parser.ParseArguments<LogOptions, SaveOptions>(argTest5).MapResult(
(LogOptions opts) => ProcessLogCommand(opts),
(SaveOptions opts) => ProcessSaveCommand(opts),
errs => 1);
}
When trying to parse argTest5 this error is shown:
ERROR(S):
Option 'b' is defined multiple times.
-a Option A for log command
-b Option B for log command
--help Display this help screen.
--version Display version information.
Expected behavior
Option "SaveOptions" correctly parsed with multiple arguments for argument b.
- Lenguaje dominante
- C#
- Estrellas
- 4.8k
- Forks
- 478
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de commandlineparser/commandline
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
commandlineparser/commandline#951 · 1 comentario ·
-
Code example misses iEnumerable Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
commandlineparser/commandline#880 · 2 reacciones ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
commandlineparser/commandline#952 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
commandlineparser/commandline#948 ·
-
How to add examples for verbs? Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
commandlineparser/commandline#947 ·
Todos los issues de commandlineparser/commandline
Issues similares
-
core dependencies
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
-
bug frontend good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
NavigationViewItemAutomationPeer implements IInvokeProvider but never advertises the Invoke pattern Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
unoplatform/uno#24629 ·
-
agentic-workflows Needs: Triage :mag: State: In-PR
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Down / Waiting for removal
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100