# -*- tcl -*- Include file for cmdr.test.
# # ## ### ##### ######## ############# #####################
## Help structure generation.

test cmdr-help-1.0 {help structure} -body {
    cmdr create x foo {
	description TEST
	officer bar {
	    private aloha {
		description hawaii
		option lulu loop {}
		input yoyo height
		input jump gate { optional }
		input run lane { list }
	    } ::hula
	}
	default
	alias snafu
	officer tool {
	    officer pliers {}
	    officer hammer {
		private nail {
		    description workbench
		    option driver force { validate adouble ; default 0 ; list ; alias force }
		    state  context orientation
		    input supply magazine { list ; optional }
		} ::wall
	    }
	    default hammer
	}
	alias hammer = tool hammer

	private hidden {
	    undocumented
	} ::missing

	officer stealth {
	    undocumented
	    private cloak {} ::dagger
	}
    }

    regsub -all {::oo::Obj\d+::} [x help] {ZZZ::}
} -cleanup {
    x destroy
} -result {{bar aloha} {desc hawaii options {--lulu loop --no-lulu {Complementary alias of --lulu.}} opt2para {--lulu lulu --no-lulu lulu} arguments {yoyo jump run} states {} parameters {jump {cmdline 1 code ? default {} defered 0 description gate documented yes flags {} generator {} interactive no isbool 0 label jump arglabel jump list no ordered 1 presence no prompt {Enter jump: } required no threshold 1 type input validator ::cmdr::validate::identity} lulu {cmdline 1 code ? default no defered 0 description loop documented yes flags {--lulu primary --no-lulu inverted} generator {} interactive no isbool 1 label lulu arglabel lulu list no ordered 0 presence no prompt {Enter lulu: } required 0 threshold {} type option validator ::cmdr::validate::boolean} run {cmdline 1 code +* default {} defered 0 description lane documented yes flags {} generator {} interactive no isbool 0 label run arglabel run list yes ordered 1 presence no prompt {Enter run: } required 1 threshold {} type input validator ::cmdr::validate::identity} yoyo {cmdline 1 code + default {} defered 0 description height documented yes flags {} generator {} interactive no isbool 0 label yoyo arglabel yoyo list no ordered 1 presence no prompt {Enter yoyo: } required 1 threshold {} type input validator ::cmdr::validate::identity}} sections {} action ::hula} {bar help} {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ZZZ::officer_bar}} {bar exit} {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} bar {desc {} options {} opt2para {} arguments {} states {} parameters {} sections {}} {snafu aloha} {desc hawaii options {--lulu loop --no-lulu {Complementary alias of --lulu.}} opt2para {--lulu lulu --no-lulu lulu} arguments {yoyo jump run} states {} parameters {jump {cmdline 1 code ? default {} defered 0 description gate documented yes flags {} generator {} interactive no isbool 0 label jump arglabel jump list no ordered 1 presence no prompt {Enter jump: } required no threshold 1 type input validator ::cmdr::validate::identity} lulu {cmdline 1 code ? default no defered 0 description loop documented yes flags {--lulu primary --no-lulu inverted} generator {} interactive no isbool 1 label lulu arglabel lulu list no ordered 0 presence no prompt {Enter lulu: } required 0 threshold {} type option validator ::cmdr::validate::boolean} run {cmdline 1 code +* default {} defered 0 description lane documented yes flags {} generator {} interactive no isbool 0 label run arglabel run list yes ordered 1 presence no prompt {Enter run: } required 1 threshold {} type input validator ::cmdr::validate::identity} yoyo {cmdline 1 code + default {} defered 0 description height documented yes flags {} generator {} interactive no isbool 0 label yoyo arglabel yoyo list no ordered 1 presence no prompt {Enter yoyo: } required 1 threshold {} type input validator ::cmdr::validate::identity}} sections {} action ::hula} {snafu help} {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ZZZ::officer_bar}} {snafu exit} {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} snafu {desc {} options {} opt2para {} arguments {} states {} parameters {} sections {}} {tool pliers help} {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ZZZ::officer_pliers}} {tool pliers exit} {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} {tool pliers} {desc {} options {} opt2para {} arguments {} states {} parameters {} sections {}} {tool hammer nail} {desc workbench options {--driver force --force {Alias of --driver.}} opt2para {--driver driver --force driver} arguments supply states context parameters {context {cmdline 0 code {} default {} defered 1 description orientation documented yes flags {} generator {} interactive no isbool 0 label context arglabel context list no ordered 0 presence no prompt {Enter context: } required 1 threshold {} type state validator ::cmdr::validate::identity} driver {cmdline 1 code ?* default 0 defered 0 description force documented yes flags {--force alias --driver primary} generator {} interactive no isbool 0 label driver arglabel driver list yes ordered 0 presence no prompt {Enter driver: } required 0 threshold {} type option validator adouble} supply {cmdline 1 code ?* default {} defered 0 description magazine documented yes flags {} generator {} interactive no isbool 0 label supply arglabel supply list yes ordered 1 presence no prompt {Enter supply: } required no threshold 0 type input validator ::cmdr::validate::identity}} sections {} action ::wall} {tool hammer help} {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ZZZ::officer_hammer}} {tool hammer exit} {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} {tool hammer} {desc {} options {} opt2para {} arguments {} states {} parameters {} sections {}} {tool help} {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ZZZ::officer_tool}} {tool exit} {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} tool {desc {} options {} opt2para {} arguments {} states {} parameters {} sections {}} {hammer nail} {desc workbench options {--driver force --force {Alias of --driver.}} opt2para {--driver driver --force driver} arguments supply states context parameters {context {cmdline 0 code {} default {} defered 1 description orientation documented yes flags {} generator {} interactive no isbool 0 label context arglabel context list no ordered 0 presence no prompt {Enter context: } required 1 threshold {} type state validator ::cmdr::validate::identity} driver {cmdline 1 code ?* default 0 defered 0 description force documented yes flags {--force alias --driver primary} generator {} interactive no isbool 0 label driver arglabel driver list yes ordered 0 presence no prompt {Enter driver: } required 0 threshold {} type option validator adouble} supply {cmdline 1 code ?* default {} defered 0 description magazine documented yes flags {} generator {} interactive no isbool 0 label supply arglabel supply list yes ordered 1 presence no prompt {Enter supply: } required no threshold 0 type input validator ::cmdr::validate::identity}} sections {} action ::wall} {hammer help} {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ZZZ::officer_hammer}} {hammer exit} {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} hammer {desc {} options {} opt2para {} arguments {} states {} parameters {} sections {}} help {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ::x}} exit {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} {} {desc TEST options {--help {
	    Show the help of the application or of the current
	    command, and stop.
	} -? {Alias of --help.} -h {Alias of --help.}} opt2para {--help help -? help -h help} arguments {} states {} parameters {help {cmdline 1 code ? default no defered 0 description {
	    Show the help of the application or of the current
	    command, and stop.
	} documented yes flags {-h alias -? alias --help primary} generator {} interactive no isbool 1 label help arglabel help list no ordered 0 presence yes prompt {Enter help: } required 0 threshold {} type option validator ::cmdr::validate::boolean}} sections {}}}

test cmdr-help-1.1 {help structure, inverted boolean option} -body {
    cmdr create x foo {
	description TEST
	private nail {
	    description workbench
	    option no-driver force { list ; alias force }
	} ::wall
    }

    regsub -all {::oo::Obj\d+::} [x help] {ZZZ::}
} -cleanup {
    x destroy
} -result {nail {desc workbench options {--driver {Complementary alias of --no-driver.} --force {Alias of --no-driver.} --no-driver force} opt2para {--driver no-driver --force no-driver --no-driver no-driver} arguments {} states {} parameters {no-driver {cmdline 1 code ?* default {} defered 0 description force documented yes flags {--force alias --no-driver primary --driver inverted} generator {} interactive no isbool 1 label no-driver arglabel no-driver list yes ordered 0 presence no prompt {Enter no-driver: } required 0 threshold {} type option validator ::cmdr::validate::boolean}} sections {} action ::wall} help {desc {Retrieve help for a command or command set.
	    Without arguments help for all commands is given.
	    The default format is --full.} options {--by-category {
		Activate by-category form of the help.
	    } --full {
		Activate full form of the help.
	    } --list {
		Activate list form of the help.
	    } --no-pager {
	    Disable use of paging.
	} --short {
		Activate short form of the help.
	    } --width {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} -w {Alias of --width.}} opt2para {--by-category by-category --full full --list list --no-pager no-pager --short short --width width -w width} arguments cmdname states format parameters {by-category {cmdline 1 code ? default no defered 0 description {
		Activate by-category form of the help.
	    } documented yes flags {--by-category primary} generator {} interactive no isbool 1 label by-category arglabel by-category list no ordered 0 presence yes prompt {Enter by-category: } required 0 threshold {} type option validator ::cmdr::validate::boolean} cmdname {cmdline 1 code ?* default {} defered 0 description {
	    The entire command line, the name of the
	    command to get help for. This can be several
	    words.
	} documented yes flags {} generator {} interactive no isbool 0 label cmdname arglabel cmdname list yes ordered 1 presence no prompt {Enter cmdname: } required no threshold 0 type input validator ::cmdr::validate::identity} format {cmdline 0 code {} default {} defered 1 description {
	    Format of the help to generate.
	    This field is fed by the options --by-category, --full, --list, and --short.
	} documented yes flags {} generator {} interactive no isbool 0 label format arglabel format list no ordered 0 presence no prompt {Enter format: } required 1 threshold {} type state validator ::cmdr::validate::identity} full {cmdline 1 code ? default no defered 0 description {
		Activate full form of the help.
	    } documented yes flags {--full primary} generator {} interactive no isbool 1 label full arglabel full list no ordered 0 presence yes prompt {Enter full: } required 0 threshold {} type option validator ::cmdr::validate::boolean} list {cmdline 1 code ? default no defered 0 description {
		Activate list form of the help.
	    } documented yes flags {--list primary} generator {} interactive no isbool 1 label list arglabel list list no ordered 0 presence yes prompt {Enter list: } required 0 threshold {} type option validator ::cmdr::validate::boolean} no-pager {cmdline 1 code ? default no defered 0 description {
	    Disable use of paging.
	} documented yes flags {--no-pager primary} generator {} interactive no isbool 1 label no-pager arglabel no-pager list no ordered 0 presence yes prompt {Enter no-pager: } required 0 threshold {} type option validator ::cmdr::validate::boolean} short {cmdline 1 code ? default no defered 0 description {
		Activate short form of the help.
	    } documented yes flags {--short primary} generator {} interactive no isbool 1 label short arglabel short list no ordered 0 presence yes prompt {Enter short: } required 0 threshold {} type option validator ::cmdr::validate::boolean} width {cmdline 1 code ? default {} defered 0 description {
	    The line width to format the help for.
	    Defaults to the terminal width, or 80 when
	    no terminal is available.
	} documented yes flags {-w alias --width primary} generator {::apply {p { linenoise columns }}} interactive no isbool 0 label width arglabel width list no ordered 0 presence no prompt {Enter width: } required 0 threshold {} type option validator ::cmdr::validate::integer}} sections *AutoGenerated* action {::cmdr::help::auto-help ::x}} exit {desc {Exit the shell.
		    No-op if not in a shell.} options {} opt2para {} arguments {} states {} parameters {} sections *AutoGenerated* action {ZZZ::my shell-exit}} {} {desc TEST options {--help {
	    Show the help of the application or of the current
	    command, and stop.
	} -? {Alias of --help.} -h {Alias of --help.}} opt2para {--help help -? help -h help} arguments {} states {} parameters {help {cmdline 1 code ? default no defered 0 description {
	    Show the help of the application or of the current
	    command, and stop.
	} documented yes flags {-h alias -? alias --help primary} generator {} interactive no isbool 1 label help arglabel help list no ordered 0 presence yes prompt {Enter help: } required 0 threshold {} type option validator ::cmdr::validate::boolean}} sections {}}}

# # ## ### ##### ######## ############# #####################

test cmdr-help-2.0 {full - formatting help structure} -body {
    HelpLarge full
} -result {bar aloha [OPTIONS] <yoyo> [<jump>] <run>...
    hawaii

    --lulu    loop
    --no-lulu Complementary alias of --lulu.

    yoyo height
    jump gate
    run  lane

bar help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

bar exit
    Exit the shell. No-op if not in a shell.

bar

snafu aloha [OPTIONS] <yoyo> [<jump>] <run>...
    hawaii

    --lulu    loop
    --no-lulu Complementary alias of --lulu.

    yoyo height
    jump gate
    run  lane

snafu help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

snafu exit
    Exit the shell. No-op if not in a shell.

snafu

tool pliers help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

tool pliers exit
    Exit the shell. No-op if not in a shell.

tool pliers

tool hammer nail [OPTIONS] [<supply>...]
    workbench

    --driver DRIVER force
    --force DRIVER  Alias of --driver.

    supply magazine

tool hammer help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

tool hammer exit
    Exit the shell. No-op if not in a shell.

tool hammer

tool help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

tool exit
    Exit the shell. No-op if not in a shell.

tool

hammer nail [OPTIONS] [<supply>...]
    workbench

    --driver DRIVER force
    --force DRIVER  Alias of --driver.

    supply magazine

hammer help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

hammer exit
    Exit the shell. No-op if not in a shell.

hammer

help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

exit
    Exit the shell. No-op if not in a shell.

 [OPTIONS]
    TEST

    --help Show the help of the application or of
           the current command, and stop.
    -?     Alias of --help.
    -h     Alias of --help.}

test cmdr-help-2.1 {full formatting - help structure, inverted boolean option} -body {
    HelpSmall full
} -result {nail [OPTIONS]
    workbench

    --driver    Complementary alias of
                --no-driver.
    --force     Alias of --no-driver.
    --no-driver force

help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

    --by-category Activate by-category form of the
                  help.
    --full        Activate full form of the help.
    --list        Activate list form of the help.
    --no-pager    Disable use of paging.
    --short       Activate short form of the help.
    --width WIDTH The line width to format the
                  help for. Defaults to the
                  terminal width, or 80 when no
                  terminal is available.
    -w WIDTH      Alias of --width.

    cmdname The entire command line, the name of
            the command to get help for. This can
            be several words.

exit
    Exit the shell. No-op if not in a shell.

 [OPTIONS]
    TEST

    --help Show the help of the application or of
           the current command, and stop.
    -?     Alias of --help.
    -h     Alias of --help.}

# # ## ### ##### ######## ############# #####################

test cmdr-help-3.0 {short - formatting help structure} -body {
    HelpLarge short
} -result {bar aloha [OPTIONS] <yoyo> [<jump>] <run>...
    hawaii

bar help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

bar exit
    Exit the shell. No-op if not in a shell.

bar

snafu aloha [OPTIONS] <yoyo> [<jump>] <run>...
    hawaii

snafu help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

snafu exit
    Exit the shell. No-op if not in a shell.

snafu

tool pliers help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

tool pliers exit
    Exit the shell. No-op if not in a shell.

tool pliers

tool hammer nail [OPTIONS] [<supply>...]
    workbench

tool hammer help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

tool hammer exit
    Exit the shell. No-op if not in a shell.

tool hammer

tool help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

tool exit
    Exit the shell. No-op if not in a shell.

tool

hammer nail [OPTIONS] [<supply>...]
    workbench

hammer help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

hammer exit
    Exit the shell. No-op if not in a shell.

hammer

help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

exit
    Exit the shell. No-op if not in a shell.

 [OPTIONS]
    TEST}

test cmdr-help-3.1 {short formatting - help structure, inverted boolean option} -body {
    HelpSmall short
} -result {nail [OPTIONS]
    workbench

help [OPTIONS] [<cmdname>...]
    Retrieve help for a command or command set.
    Without arguments help for all commands is
    given. The default format is --full.

exit
    Exit the shell. No-op if not in a shell.

 [OPTIONS]
    TEST}

# # ## ### ##### ######## ############# #####################

test cmdr-help-4.0 {list - formatting help structure} -body {
    HelpLarge list
} -result {    bar aloha [OPTIONS] <yoyo> [<jump>] <run>...
    bar help [OPTIONS] [<cmdname>...]
    bar exit
    bar
    snafu aloha [OPTIONS] <yoyo> [<jump>] <run>...
    snafu help [OPTIONS] [<cmdname>...]
    snafu exit
    snafu
    tool pliers help [OPTIONS] [<cmdname>...]
    tool pliers exit
    tool pliers
    tool hammer nail [OPTIONS] [<supply>...]
    tool hammer help [OPTIONS] [<cmdname>...]
    tool hammer exit
    tool hammer
    tool help [OPTIONS] [<cmdname>...]
    tool exit
    tool
    hammer nail [OPTIONS] [<supply>...]
    hammer help [OPTIONS] [<cmdname>...]
    hammer exit
    hammer
    help [OPTIONS] [<cmdname>...]
    exit
     [OPTIONS]}

test cmdr-help-4.1 {list formatting - help structure, inverted boolean option} -body {
    HelpSmall list
} -result {    nail [OPTIONS]
    help [OPTIONS] [<cmdname>...]
    exit
     [OPTIONS]}

# # ## ### ##### ######## ############# #####################
return
