github apple/swift-argument-parser 1.2.0
ArgumentParser 1.2.0

latest release: 1.2.1
17 months ago

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 with nil. 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 the ArgumentArrayParsingStrategy 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 or EnumerableFlag 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 and allValues 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!

Don't miss a new swift-argument-parser release

NewReleases is sending notifications on new releases.