From e10e2ad249254b21847a0c626b9ba48ba30ad855 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 18 Apr 2023 15:03:20 -0500 Subject: [PATCH] refactor(help): Split out separate usage style Because this doesn't have a full section after it, people might want to style it differently than other headers. --- clap_builder/src/builder/styled_str.rs | 4 ++++ clap_builder/src/output/help_template.rs | 5 ++--- clap_builder/src/output/usage.rs | 5 ++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/clap_builder/src/builder/styled_str.rs b/clap_builder/src/builder/styled_str.rs index 13a81bec87f..ed72b51693d 100644 --- a/clap_builder/src/builder/styled_str.rs +++ b/clap_builder/src/builder/styled_str.rs @@ -207,6 +207,8 @@ pub struct Styles { pub header: anstyle::Style, /// Error heading pub error: anstyle::Style, + /// Usage heading + pub usage: anstyle::Style, /// Literal command-line syntax, e.g. `--help` pub literal: anstyle::Style, /// Descriptions within command-line syntax, e.g. [`value_name`][crate::Arg::value_name] @@ -223,6 +225,7 @@ impl Styles { Self { header: anstyle::Style::new(), error: anstyle::Style::new(), + usage: anstyle::Style::new(), literal: anstyle::Style::new(), placeholder: anstyle::Style::new(), valid: anstyle::Style::new(), @@ -239,6 +242,7 @@ impl Styles { error: anstyle::Style::new() .fg_color(Some(anstyle::Color::Ansi(anstyle::AnsiColor::Red))) .bold(), + usage: anstyle::Style::new().bold().underline(), literal: anstyle::Style::new().bold(), placeholder: anstyle::Style::new(), valid: anstyle::Style::new() diff --git a/clap_builder/src/output/help_template.rs b/clap_builder/src/output/help_template.rs index 2668edd4495..703a1f47f5c 100644 --- a/clap_builder/src/output/help_template.rs +++ b/clap_builder/src/output/help_template.rs @@ -130,7 +130,6 @@ impl<'cmd, 'writer> HelpTemplate<'cmd, 'writer> { pub(crate) fn write_templated_help(&mut self, template: &str) { debug!("HelpTemplate::write_templated_help"); use std::fmt::Write as _; - let header = &self.styles.header; let mut parts = template.split('{'); if let Some(first) = parts.next() { @@ -171,8 +170,8 @@ impl<'cmd, 'writer> HelpTemplate<'cmd, 'writer> { let _ = write!( self.writer, "{}Usage:{}", - header.render(), - header.render_reset() + self.styles.usage.render(), + self.styles.usage.render_reset() ); } "usage" => { diff --git a/clap_builder/src/output/usage.rs b/clap_builder/src/output/usage.rs index ffef25d494c..1eb9139d718 100644 --- a/clap_builder/src/output/usage.rs +++ b/clap_builder/src/output/usage.rs @@ -41,13 +41,12 @@ impl<'cmd> Usage<'cmd> { let usage = some!(self.create_usage_no_title(used)); use std::fmt::Write as _; - let header = &self.styles.header; let mut styled = StyledStr::new(); let _ = write!( styled, "{}Usage:{} ", - header.render(), - header.render_reset() + self.styles.usage.render(), + self.styles.usage.render_reset() ); styled.push_styled(&usage); Some(styled)