Open mathrick opened 1 month ago
Yeah, maybe an empty line could be added when the constraint is long.
Note that your constraint is probably wrong, as require_any
doesn't mean "optional". In case your else_ branch actually require the full option group, the constraint could be rewritten as:
If(Not(AllSet(*names)), then=require_all)
which has a short description.
Right, I realised it actually reduced to require_all
as I was writing this bug report, but it doesn't take away from the substance of it, since I actually have other constraints where the list of names is a subset of the available options, so it still suffers from the readability issues. This just happened to be one that had especially confusing output.
Sure. But I'd recommend against using group constraints for a constraint that does NOT apply to the entire group. Use @constraint
or the command help instead to instruct the user (or both). The correct use of an option group constraint is for constraint that apply to the full group and as such have a short description.
Bug description
The way the constraints descriptions are printed under the option group headers doesn't work very well with longer descriptions that require wrapping. I have implemented a "required if missing" constraint as follows (
RequireNamed
is my custom constraint):and it results in the following output:
Notice how the description wraps around in a way that makes it look like it's a part of the option listing. IMHO, there should be a blank line inserted between the description and the option list if the description wraps around.
To Reproduce
Steps to reproduce the behavior:
--help