summaryrefslogtreecommitdiffstats
path: root/vendor/clap_builder/src/output
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
commitd1b2d29528b7794b41e66fc2136e395a02f8529b (patch)
treea4a17504b260206dec3cf55b2dca82929a348ac2 /vendor/clap_builder/src/output
parentReleasing progress-linux version 1.72.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.tar.xz
rustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.zip
Merging upstream version 1.73.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/clap_builder/src/output')
-rw-r--r--vendor/clap_builder/src/output/help_template.rs84
-rw-r--r--vendor/clap_builder/src/output/usage.rs15
2 files changed, 70 insertions, 29 deletions
diff --git a/vendor/clap_builder/src/output/help_template.rs b/vendor/clap_builder/src/output/help_template.rs
index 68ff58077..da2e75413 100644
--- a/vendor/clap_builder/src/output/help_template.rs
+++ b/vendor/clap_builder/src/output/help_template.rs
@@ -101,7 +101,23 @@ impl<'cmd, 'writer> HelpTemplate<'cmd, 'writer> {
cmd.get_name(),
use_long
);
- let term_w = match cmd.get_term_width() {
+ let term_w = Self::term_w(cmd);
+ let next_line_help = cmd.is_next_line_help_set();
+
+ HelpTemplate {
+ writer,
+ cmd,
+ styles: cmd.get_styles(),
+ usage,
+ next_line_help,
+ term_w,
+ use_long,
+ }
+ }
+
+ #[cfg(not(feature = "unstable-v5"))]
+ fn term_w(cmd: &'cmd Command) -> usize {
+ match cmd.get_term_width() {
Some(0) => usize::MAX,
Some(w) => w,
None => {
@@ -113,18 +129,27 @@ impl<'cmd, 'writer> HelpTemplate<'cmd, 'writer> {
};
cmp::min(current_width, max_width)
}
+ }
+ }
+
+ #[cfg(feature = "unstable-v5")]
+ fn term_w(cmd: &'cmd Command) -> usize {
+ let term_w = match cmd.get_term_width() {
+ Some(0) => usize::MAX,
+ Some(w) => w,
+ None => {
+ let (current_width, _h) = dimensions();
+ current_width.unwrap_or(usize::MAX)
+ }
};
- let next_line_help = cmd.is_next_line_help_set();
- HelpTemplate {
- writer,
- cmd,
- styles: cmd.get_styles(),
- usage,
- next_line_help,
- term_w,
- use_long,
- }
+ let max_term_w = match cmd.get_max_term_width() {
+ Some(0) => usize::MAX,
+ Some(mw) => mw,
+ None => 100,
+ };
+
+ cmp::min(term_w, max_term_w)
}
/// Write help to stream for the parser in the format defined by the template.
@@ -676,32 +701,33 @@ impl<'cmd, 'writer> HelpTemplate<'cmd, 'writer> {
self.writer.push_str("Possible values:");
for pv in possible_vals.iter().filter(|pv| !pv.is_hide_set()) {
let name = pv.get_name();
+
+ let mut descr = StyledStr::new();
let _ = write!(
- self.writer,
- "\n{:spaces$}- {}{name}{}",
- "",
+ &mut descr,
+ "{}{name}{}",
literal.render(),
literal.render_reset()
);
if let Some(help) = pv.get_help() {
debug!("HelpTemplate::help: Possible Value help");
-
// To align help messages
- let padding = longest - display_width(pv.get_name());
- let _ = write!(self.writer, ": {:padding$}", "");
-
- let avail_chars = if self.term_w > trailing_indent.len() {
- self.term_w - trailing_indent.len()
- } else {
- usize::MAX
- };
-
- let mut help = help.clone();
- help.replace_newline_var();
- help.wrap(avail_chars);
- help.indent("", &trailing_indent);
- self.writer.push_styled(&help);
+ let padding = longest - display_width(name);
+ let _ = write!(&mut descr, ": {:padding$}", "");
+ descr.push_styled(help);
}
+
+ let avail_chars = if self.term_w > trailing_indent.len() {
+ self.term_w - trailing_indent.len()
+ } else {
+ usize::MAX
+ };
+ descr.replace_newline_var();
+ descr.wrap(avail_chars);
+ descr.indent("", &trailing_indent);
+
+ let _ = write!(self.writer, "\n{:spaces$}- ", "",);
+ self.writer.push_styled(&descr);
}
}
}
diff --git a/vendor/clap_builder/src/output/usage.rs b/vendor/clap_builder/src/output/usage.rs
index 3f387a0d7..884a64df9 100644
--- a/vendor/clap_builder/src/output/usage.rs
+++ b/vendor/clap_builder/src/output/usage.rs
@@ -4,6 +4,7 @@
#![cfg_attr(not(feature = "usage"), allow(dead_code))]
// Internal
+use crate::builder::ArgAction;
use crate::builder::StyledStr;
use crate::builder::Styles;
use crate::builder::{ArgPredicate, Command};
@@ -210,6 +211,20 @@ impl<'cmd> Usage<'cmd> {
debug!("Usage::needs_options_tag:iter Option is built-in");
continue;
}
+ match f.get_action() {
+ ArgAction::Set
+ | ArgAction::Append
+ | ArgAction::SetTrue
+ | ArgAction::SetFalse
+ | ArgAction::Count => {}
+ ArgAction::Help
+ | ArgAction::HelpShort
+ | ArgAction::HelpLong
+ | ArgAction::Version => {
+ debug!("Usage::needs_options_tag:iter Option is built-in");
+ continue;
+ }
+ }
if f.is_hide_set() {
debug!("Usage::needs_options_tag:iter Option is hidden");