ArgumentParser 1.2.0
Additions
-
You can now provide a title in an
@OptionGroupdeclaration. Titled option groups are listed separately in the help screen under that title as a heading. (#492) -
Two new parsing strategies have been added for
@Argumentarray properties:.allUnrecognizedcaptures all unrecognized inputs after parsing known flags, options, and arguments..postTerminatorcollects any inputs that follow the--terminator.
See the
ArgumentArrayParsingStrategydocumentation for more. (#496) -
Default values are now supported for
@Argumentor@Optionproperties with optional type, allowing you to initialize those properties withnil. Providing a non-nildefault value results in a warning, since optional properties with non-nildefaults don't need to be declared as optionals. (#477, #480)
Changes
- The
.unconditionalRemainingarray parsing strategy has been deprecated and renamed to.captureForPassthrough, to better fit its semantic behavior and intended usage. See theArgumentArrayParsingStrategydocumentation for more. (#496)
Fixes
- Invalid
init(from:)decoding initializers are now correctly diagnosed by ArgumentParser's validators. (#487) - Default values are now correctly displayed as flags for
@Flagproperties with inversions orEnumerableFlagtypes. (#486) - The help display for non-string-backed raw representable types has been corrected to not show raw Swift values. Instead, the help display uses the type's customized
defaultValueDescriptionandallValuesimplementations. (#494) - Properties at different levels of a command hierarchy with the same Swift name but different argument names no longer collide. (#495)
- The
generate-manualplugin name is improved when used from within Xcode. (#505) - Documentation fixes and improvements.
The 1.2.0 release includes contributions from @allevato, @clayellis, @compnerd, @d-ronnqvist, @natecook1000, @randomeizer, and @rauhul. Thank you!