ArgumentParser 1.2.0
Additions
-
You can now provide a title in an
@OptionGroup
declaration. 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
@Argument
array properties:.allUnrecognized
captures all unrecognized inputs after parsing known flags, options, and arguments..postTerminator
collects any inputs that follow the--
terminator.
See the
ArgumentArrayParsingStrategy
documentation for more. (#496) -
Default values are now supported for
@Argument
or@Option
properties with optional type, allowing you to initialize those properties withnil
. Providing a non-nil
default value results in a warning, since optional properties with non-nil
defaults don't need to be declared as optionals. (#477, #480)
Changes
- The
.unconditionalRemaining
array parsing strategy has been deprecated and renamed to.captureForPassthrough
, to better fit its semantic behavior and intended usage. See theArgumentArrayParsingStrategy
documentation 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
@Flag
properties with inversions orEnumerableFlag
types. (#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
defaultValueDescription
andallValues
implementations. (#494) - Properties at different levels of a command hierarchy with the same Swift name but different argument names no longer collide. (#495)
- The
generate-manual
plugin 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!