diff --git a/clap_mangen/src/render.rs b/clap_mangen/src/render.rs index b88a7526..99fa6ab4 100644 --- a/clap_mangen/src/render.rs +++ b/clap_mangen/src/render.rs @@ -99,9 +99,11 @@ pub(crate) fn options(roff: &mut Roff, cmd: &clap::Command) { (None, None) => vec![], }; - if let Some(value) = &opt.get_value_names() { - header.push(roman("=")); - header.push(italic(value.join(" "))); + if opt.get_action().takes_values() { + if let Some(value) = &opt.get_value_names() { + header.push(roman("=")); + header.push(italic(value.join(" "))); + } } if let Some(defs) = option_default_values(opt) { diff --git a/clap_mangen/tests/common.rs b/clap_mangen/tests/common.rs index ca9f1f9b..029098c0 100644 --- a/clap_mangen/tests/common.rs +++ b/clap_mangen/tests/common.rs @@ -312,3 +312,12 @@ pub fn possible_values_command(name: &'static str) -> clap::Command { ]), ) } + +pub fn value_name_without_arg(name: &'static str) -> clap::Command { + clap::Command::new(name).arg( + clap::Arg::new("flag") + .long("flag") + .value_name("SPURIOUS") + .action(clap::ArgAction::SetTrue), + ) +} diff --git a/clap_mangen/tests/roff.rs b/clap_mangen/tests/roff.rs index 223196c3..38d1aef1 100644 --- a/clap_mangen/tests/roff.rs +++ b/clap_mangen/tests/roff.rs @@ -83,3 +83,10 @@ fn sub_subcommands_help() { common::assert_matches_path("tests/snapshots/sub_subcommand_help.roff", cmd.clone()); } } + +#[test] +fn value_name_without_arg() { + let name = "my-app"; + let cmd = common::value_name_without_arg(name); + common::assert_matches_path("tests/snapshots/value_name_without_arg.bash.roff", cmd); +} diff --git a/clap_mangen/tests/snapshots/value_name_without_arg.bash.roff b/clap_mangen/tests/snapshots/value_name_without_arg.bash.roff new file mode 100644 index 00000000..2ffbe021 --- /dev/null +++ b/clap_mangen/tests/snapshots/value_name_without_arg.bash.roff @@ -0,0 +1,15 @@ +.ie /n(.g .ds Aq /(aq +.el .ds Aq ' +.TH my-app 1 "my-app " +.SH NAME +my/-app +.SH SYNOPSIS +/fBmy/-app/fR [/fB/-/-flag/fR] [/fB/-h/fR|/fB/-/-help/fR] +.SH DESCRIPTION +.SH OPTIONS +.TP +/fB/-/-flag/fR + +.TP +/fB/-h/fR, /fB/-/-help/fR +Print help