Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 22 additions & 8 deletions clap_builder/src/output/help_template.rs
Original file line number Diff line number Diff line change
Expand Up @@ -635,18 +635,19 @@ impl HelpTemplate<'_, '_> {
let trailing_indent = self.get_spaces(trailing_indent);

let mut help = about.clone();
let mut help_is_empty = help.is_empty();
help.replace_newline_var();
if !spec_vals.is_empty() {
if !help.is_empty() {
let sep = if self.use_long && arg.is_some() {
"\n\n"
} else {
" "
};

let next_line_specs = self.use_long && arg.is_some();
if !spec_vals.is_empty() && !next_line_specs {
if !help_is_empty {
let sep = " ";
help.push_str(sep);
}
help.push_str(spec_vals);
help_is_empty = help.is_empty();
}

let avail_chars = self.term_w.saturating_sub(spaces);
debug!(
"HelpTemplate::help: help_width={}, spaces={}, avail={}",
Expand All @@ -656,8 +657,8 @@ impl HelpTemplate<'_, '_> {
);
help.wrap(avail_chars);
help.indent("", &trailing_indent);
let help_is_empty = help.is_empty();
self.writer.push_styled(&help);

if let Some(arg) = arg {
if !arg.is_hide_possible_values_set() && self.use_long_pv(arg) {
const DASH_SPACE: usize = "- ".len();
Expand Down Expand Up @@ -707,6 +708,19 @@ impl HelpTemplate<'_, '_> {
}
}
}

if !spec_vals.is_empty() && next_line_specs {
let mut help = StyledStr::new();
if !help_is_empty {
let sep = "\n\n";
help.push_str(sep);
}
help.push_str(spec_vals);

help.wrap(avail_chars);
help.indent("", &trailing_indent);
self.writer.push_styled(&help);
}
}

/// Will use next line help on writing args.
Expand Down
4 changes: 2 additions & 2 deletions tests/ui/help_cmd_stdout.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ Options:

-c, --config <MODE>
Speed configuration

[default: fast]

Possible values:
- fast
- slow: slower than fast

[default: fast]

-f <FRUITS>
List of fruits
Expand Down
4 changes: 2 additions & 2 deletions tests/ui/help_flag_stdout.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ Options:

-c, --config <MODE>
Speed configuration

[default: fast]

Possible values:
- fast
- slow: slower than fast

[default: fast]

-f <FRUITS>
List of fruits
Expand Down
Loading