On 10/19/21 10:36 AM, Andrey Zherikov wrote:
On Tuesday, 19 October 2021 at 14:06:21 UTC, Steven Schveighoffer wrote:
Just nitpicks. Like allowing `@NamedArgument` without parentheses. Or using `@NamedArgument("b", "banana", "ban")` instead of `@NamedArgument(["b", "banana", "ban"])`

I did array because I think it makes sense to have `@NamedArgument(names, help_text)` as a shortcut for `@(NamedArgument(names).HelpText(help_text))` for CLI.

Just going to put this here, instead of a PR, but if you change your parameter type to:

```d
NamedArgument(string[] names...);
```

Now, these all work:

```d

NamedArgument("banana")
NamedArgument("b", "banana", "ban")
NamedArgument(["b", "banana", "ban"])
```

If you want to support an array + extra string, then you can add:

```d
NamedArgument(string[] names, string helptext);
```

And it shouldn't conflict with the first overload.

Though, I like the explicit HelpText better (that's what I'd use, even if the convenient overload is there). UDAs that don't spell out what they are for are harder to review.

-Steve

Reply via email to