@@ -253,8 +253,12 @@ class BoxedArgumentDescriptor {
253253
254254 if let value = value as? Flag {
255255 `default` = value. `default`. description
256+ } else if let value = value as? Option < String > {
257+ `default` = value. `default`. description
258+ } else if let value = value as? Option < Int > {
259+ `default` = value. `default`. description
256260 } else {
257- // TODO, default for Option and Options
261+ // TODO, default for Option of generic type
258262 `default` = nil
259263 }
260264 }
@@ -343,13 +347,17 @@ class Help : Error, ANSIConvertible, CustomStringConvertible {
343347 if !options. isEmpty {
344348 output. append ( " Options: " )
345349 for option in options {
346- // TODO: default, [default: `\(`default`)`]
350+ var line = " -- \( option. name) "
351+
352+ if let `default` = option. default {
353+ line += " [default: \( `default`) ] "
354+ }
347355
348356 if let description = option. description {
349- output. append ( " -- \( option. name) - \( description) " )
350- } else {
351- output. append ( " -- \( option. name) " )
357+ line += " - \( description) "
352358 }
359+
360+ output. append ( line)
353361 }
354362 }
355363
@@ -401,13 +409,17 @@ class Help : Error, ANSIConvertible, CustomStringConvertible {
401409 if !options. isEmpty {
402410 output. append ( " Options: " )
403411 for option in options {
404- // TODO: default, [default: `\(`default`)`]
412+ var line = " \( ANSI . blue) -- \( option. name) \( ANSI . reset) "
413+
414+ if let `default` = option. default {
415+ line += " [default: \( `default`) ] "
416+ }
405417
406418 if let description = option. description {
407- output. append ( " \( ANSI . blue) -- \( option. name) \( ANSI . reset) - \( description) " )
408- } else {
409- output. append ( " \( ANSI . blue) -- \( option. name) \( ANSI . reset) " )
419+ line += " - \( description) "
410420 }
421+
422+ output. append ( line)
411423 }
412424 }
413425
0 commit comments