From 530b17977679ccee755c5da90860f55699ddd022 Mon Sep 17 00:00:00 2001 From: knidarkness Date: Tue, 25 Aug 2020 10:23:47 +0300 Subject: [PATCH] fix: detect if space should be added before spec_vals --- src/output/help.rs | 17 +++++++++-------- tests/arg_aliases.rs | 4 ++-- tests/arg_aliases_short.rs | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/output/help.rs b/src/output/help.rs index ad114a26..4f9428ea 100644 --- a/src/output/help.rs +++ b/src/output/help.rs @@ -504,7 +504,7 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> { } else { String::new() }; - let env_info = format!(" [env: {}{}]", env.0.to_string_lossy(), env_val); + let env_info = format!("[env: {}{}]", env.0.to_string_lossy(), env_val); spec_vals.push(env_info); } if !a.is_set(ArgSettings::HideDefaultValue) && !a.default_vals.is_empty() { @@ -520,7 +520,7 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> { .collect::>() .join(" "); - spec_vals.push(format!(" [default: {}]", pvs)); + spec_vals.push(format!("[default: {}]", pvs)); } if !a.aliases.is_empty() { debug!("Help::spec_vals: Found aliases...{:?}", a.aliases); @@ -534,7 +534,7 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> { .join(", "); if !als.is_empty() { - spec_vals.push(format!(" [aliases: {}]", als)); + spec_vals.push(format!("[aliases: {}]", als)); } } @@ -566,12 +566,13 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> { a.possible_vals ); - spec_vals.push(format!( - " [possible values: {}]", - a.possible_vals.join(", ") - )); + spec_vals.push(format!("[possible values: {}]", a.possible_vals.join(", "))); } - spec_vals.join(" ") + let prefix = match !spec_vals.is_empty() && !a.get_about().unwrap_or("").is_empty() { + true => " ", + false => "", + }; + prefix.to_string() + &spec_vals.join(" ") } } diff --git a/tests/arg_aliases.rs b/tests/arg_aliases.rs index 46e179ba..41643e14 100644 --- a/tests/arg_aliases.rs +++ b/tests/arg_aliases.rs @@ -9,12 +9,12 @@ USAGE: ct test [FLAGS] [OPTIONS] FLAGS: - -f, --flag [aliases: v_flg, flag2, flg3] + -f, --flag [aliases: v_flg, flag2, flg3] -h, --help Prints help information -V, --version Prints version information OPTIONS: - -o, --opt [aliases: visible]"; + -o, --opt [aliases: visible]"; static SC_INVISIBLE_ALIAS_HELP: &str = "ct-test 1.2 Some help diff --git a/tests/arg_aliases_short.rs b/tests/arg_aliases_short.rs index 865dc8bc..102b0f87 100644 --- a/tests/arg_aliases_short.rs +++ b/tests/arg_aliases_short.rs @@ -9,7 +9,7 @@ USAGE: ct test [FLAGS] [OPTIONS] FLAGS: - -f, --flag [aliases: flag1] [short aliases: a, b, 🦆] + -f, --flag [aliases: flag1] [short aliases: a, b, 🦆] -h, --help Prints help information -V, --version Prints version information