Skip to content

Commit c758212

Browse files
committed
feat(help): Merge lists of short and long aliases
1 parent 6d0bfa0 commit c758212

File tree

2 files changed

+17
-19
lines changed

2 files changed

+17
-19
lines changed

clap_builder/src/output/help_template.rs

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -785,31 +785,29 @@ impl HelpTemplate<'_, '_> {
785785
spec_vals.push(format!("[default: {pvs}]"));
786786
}
787787

788-
let als = a
788+
let mut als = Vec::new();
789+
790+
let short_als = a
789791
.short_aliases
790792
.iter()
791793
.filter(|&als| als.1) // visible
792-
.map(|als| format!("-{}", als.0)) // name
793-
.collect::<Vec<_>>()
794-
.join(", ");
795-
if !als.is_empty() {
796-
debug!(
797-
"HelpTemplate::spec_vals: Found short aliases...{:?}",
798-
a.short_aliases
799-
);
800-
spec_vals.push(format!("[short aliases: {als}]"));
801-
}
794+
.map(|als| format!("-{}", als.0)); // name
795+
debug!(
796+
"HelpTemplate::spec_vals: Found short aliases...{:?}",
797+
a.short_aliases
798+
);
799+
als.extend(short_als);
802800

803-
let als = a
801+
let long_als = a
804802
.aliases
805803
.iter()
806804
.filter(|&als| als.1) // visible
807-
.map(|als| format!("--{}", als.0)) // name
808-
.collect::<Vec<_>>()
809-
.join(", ");
805+
.map(|als| format!("--{}", als.0)); // name
806+
debug!("HelpTemplate::spec_vals: Found aliases...{:?}", a.aliases);
807+
als.extend(long_als);
808+
810809
if !als.is_empty() {
811-
debug!("HelpTemplate::spec_vals: Found aliases...{:?}", a.aliases);
812-
spec_vals.push(format!("[aliases: {als}]"));
810+
spec_vals.push(format!("[aliases: {}]", als.join(", ")));
813811
}
814812

815813
if !a.is_hide_possible_values_set() && !self.use_long_pv(a) {

tests/builder/arg_aliases_short.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,8 @@ Some help
193193
Usage: ct test [OPTIONS]
194194
195195
Options:
196-
-o, --opt <opt> [short aliases: -v]
197-
-f, --flag [short aliases: -a, -b, -🦆] [aliases: --flag1]
196+
-o, --opt <opt> [aliases: -v]
197+
-f, --flag [aliases: -a, -b, -🦆, --flag1]
198198
-h, --help Print help
199199
-V, --version Print version
200200
";

0 commit comments

Comments
 (0)