mirror of
https://github.com/status-im/nim-confutils.git
synced 2025-02-12 20:16:30 +00:00
Bugfix: parameters having empty strings as default values were treated as mandatory
This commit is contained in:
parent
4c19475a01
commit
6036a47000
@ -42,7 +42,8 @@ type
|
|||||||
name, abbr, desc, typename: string
|
name, abbr, desc, typename: string
|
||||||
idx: int
|
idx: int
|
||||||
isHidden: bool
|
isHidden: bool
|
||||||
defaultValue: string
|
hasDefault: bool
|
||||||
|
defaultInHelpText: string
|
||||||
case kind: OptKind
|
case kind: OptKind
|
||||||
of Discriminator:
|
of Discriminator:
|
||||||
isCommand: bool
|
isCommand: bool
|
||||||
@ -208,9 +209,6 @@ func hasAbbrs(cmd: CmdInfo): bool =
|
|||||||
if hasAbbrs(subCmd):
|
if hasAbbrs(subCmd):
|
||||||
return true
|
return true
|
||||||
|
|
||||||
template hasDefault(opt: OptInfo): bool =
|
|
||||||
opt.defaultValue.len > 0
|
|
||||||
|
|
||||||
func humaneName(opt: OptInfo): string =
|
func humaneName(opt: OptInfo): string =
|
||||||
if opt.name.len > 0: opt.name
|
if opt.name.len > 0: opt.name
|
||||||
else: opt.abbr
|
else: opt.abbr
|
||||||
@ -269,7 +267,7 @@ proc describeInvocation(help: var string,
|
|||||||
let cliArg = " <" & arg.humaneName & ">"
|
let cliArg = " <" & arg.humaneName & ">"
|
||||||
helpOutput fgArg, styleBright, cliArg
|
helpOutput fgArg, styleBright, cliArg
|
||||||
helpOutput padding(cliArg, 6 + appInfo.namesWidth)
|
helpOutput padding(cliArg, 6 + appInfo.namesWidth)
|
||||||
help.writeDesc appInfo, arg.desc, arg.defaultValue
|
help.writeDesc appInfo, arg.desc, arg.defaultInHelpText
|
||||||
helpOutput "\p"
|
helpOutput "\p"
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -314,7 +312,7 @@ proc describeOptions(help: var string,
|
|||||||
if opt.desc.len > 0:
|
if opt.desc.len > 0:
|
||||||
help.writeDesc appInfo,
|
help.writeDesc appInfo,
|
||||||
opt.desc.replace("%t", opt.typename),
|
opt.desc.replace("%t", opt.typename),
|
||||||
opt.defaultValue
|
opt.defaultInHelpText
|
||||||
|
|
||||||
helpOutput "\p"
|
helpOutput "\p"
|
||||||
|
|
||||||
@ -674,8 +672,11 @@ proc cmdInfoFromType(T: NimNode): CmdInfo =
|
|||||||
isImplicitlySelectable = field.readPragma"implicitlySelectable" != nil
|
isImplicitlySelectable = field.readPragma"implicitlySelectable" != nil
|
||||||
defaultValue = field.readPragma"defaultValue"
|
defaultValue = field.readPragma"defaultValue"
|
||||||
defaultValueDesc = field.readPragma"defaultValueDesc"
|
defaultValueDesc = field.readPragma"defaultValueDesc"
|
||||||
defaultValueOnScreen = if defaultValueDesc != nil: defaultValueDesc
|
defaultInHelp = if defaultValueDesc != nil: defaultValueDesc
|
||||||
else: defaultValue
|
else: defaultValue
|
||||||
|
defaultInHelpText = if defaultInHelp == nil: ""
|
||||||
|
elif defaultInHelp.kind in {nnkStrLit..nnkTripleStrLit}: defaultInHelp.strVal
|
||||||
|
else: repr(defaultInHelp)
|
||||||
isHidden = field.readPragma("hidden") != nil
|
isHidden = field.readPragma("hidden") != nil
|
||||||
abbr = field.readPragma"abbr"
|
abbr = field.readPragma"abbr"
|
||||||
name = field.readPragma"name"
|
name = field.readPragma"name"
|
||||||
@ -688,9 +689,8 @@ proc cmdInfoFromType(T: NimNode): CmdInfo =
|
|||||||
idx: fieldIdx,
|
idx: fieldIdx,
|
||||||
name: $field.name,
|
name: $field.name,
|
||||||
isHidden: isHidden,
|
isHidden: isHidden,
|
||||||
defaultValue: if defaultValueOnScreen == nil: ""
|
hasDefault: defaultValue != nil,
|
||||||
elif defaultValueOnScreen.kind in {nnkStrLit..nnkTripleStrLit}: defaultValueOnScreen.strVal
|
defaultInHelpText: defaultInHelpText,
|
||||||
else: repr(defaultValueOnScreen),
|
|
||||||
typename: field.typ.repr)
|
typename: field.typ.repr)
|
||||||
|
|
||||||
if desc != nil: opt.desc = desc.strVal
|
if desc != nil: opt.desc = desc.strVal
|
||||||
|
Loading…
x
Reference in New Issue
Block a user