mirror of
https://github.com/nushell/nushell
synced 2025-01-29 05:13:31 +00:00
Cut out a function to generate a pharase in the Flags section. (#1930)
This commit is contained in:
parent
b6f9d0ca58
commit
5dd346094e
1 changed files with 73 additions and 67 deletions
|
@ -182,8 +182,8 @@ pub fn get_help(cmd: &dyn WholeStreamCommand, registry: &CommandRegistry) -> Str
|
||||||
|
|
||||||
if !signature.positional.is_empty() || signature.rest_positional.is_some() {
|
if !signature.positional.is_empty() || signature.rest_positional.is_some() {
|
||||||
long_desc.push_str("\nParameters:\n");
|
long_desc.push_str("\nParameters:\n");
|
||||||
for positional in signature.positional {
|
for positional in &signature.positional {
|
||||||
match positional.0 {
|
match &positional.0 {
|
||||||
PositionalType::Mandatory(name, _m) => {
|
PositionalType::Mandatory(name, _m) => {
|
||||||
long_desc.push_str(&format!(" <{}> {}\n", name, positional.1));
|
long_desc.push_str(&format!(" <{}> {}\n", name, positional.1));
|
||||||
}
|
}
|
||||||
|
@ -193,75 +193,12 @@ pub fn get_help(cmd: &dyn WholeStreamCommand, registry: &CommandRegistry) -> Str
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(rest_positional) = signature.rest_positional {
|
if let Some(rest_positional) = &signature.rest_positional {
|
||||||
long_desc.push_str(&format!(" ...args: {}\n", rest_positional.1));
|
long_desc.push_str(&format!(" ...args: {}\n", rest_positional.1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !signature.named.is_empty() {
|
if !signature.named.is_empty() {
|
||||||
long_desc.push_str("\nFlags:\n");
|
long_desc.push_str(&get_flags_section(&signature))
|
||||||
for (flag, ty) in signature.named {
|
|
||||||
let msg = match ty.0 {
|
|
||||||
NamedType::Switch(s) => {
|
|
||||||
if let Some(c) = s {
|
|
||||||
format!(
|
|
||||||
" -{}, --{}{} {}\n",
|
|
||||||
c,
|
|
||||||
flag,
|
|
||||||
if !ty.1.is_empty() { ":" } else { "" },
|
|
||||||
ty.1
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
format!(
|
|
||||||
" --{}{} {}\n",
|
|
||||||
flag,
|
|
||||||
if !ty.1.is_empty() { ":" } else { "" },
|
|
||||||
ty.1
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
NamedType::Mandatory(s, m) => {
|
|
||||||
if let Some(c) = s {
|
|
||||||
format!(
|
|
||||||
" -{}, --{} <{}> (required parameter){} {}\n",
|
|
||||||
c,
|
|
||||||
flag,
|
|
||||||
m.display(),
|
|
||||||
if !ty.1.is_empty() { ":" } else { "" },
|
|
||||||
ty.1
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
format!(
|
|
||||||
" --{} <{}> (required parameter){} {}\n",
|
|
||||||
flag,
|
|
||||||
m.display(),
|
|
||||||
if !ty.1.is_empty() { ":" } else { "" },
|
|
||||||
ty.1
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
NamedType::Optional(s, o) => {
|
|
||||||
if let Some(c) = s {
|
|
||||||
format!(
|
|
||||||
" -{}, --{} <{}>{} {}\n",
|
|
||||||
c,
|
|
||||||
flag,
|
|
||||||
o.display(),
|
|
||||||
if !ty.1.is_empty() { ":" } else { "" },
|
|
||||||
ty.1
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
format!(
|
|
||||||
" --{} <{}>{} {}\n",
|
|
||||||
flag,
|
|
||||||
o.display(),
|
|
||||||
if !ty.1.is_empty() { ":" } else { "" },
|
|
||||||
ty.1
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
long_desc.push_str(&msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let palette = crate::shell::palette::DefaultPalette {};
|
let palette = crate::shell::palette::DefaultPalette {};
|
||||||
|
@ -283,6 +220,75 @@ pub fn get_help(cmd: &dyn WholeStreamCommand, registry: &CommandRegistry) -> Str
|
||||||
long_desc
|
long_desc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_flags_section(signature: &Signature) -> String {
|
||||||
|
let mut long_desc = String::new();
|
||||||
|
long_desc.push_str("\nFlags:\n");
|
||||||
|
for (flag, ty) in &signature.named {
|
||||||
|
let msg = match ty.0 {
|
||||||
|
NamedType::Switch(s) => {
|
||||||
|
if let Some(c) = s {
|
||||||
|
format!(
|
||||||
|
" -{}, --{}{} {}\n",
|
||||||
|
c,
|
||||||
|
flag,
|
||||||
|
if !ty.1.is_empty() { ":" } else { "" },
|
||||||
|
ty.1
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
format!(
|
||||||
|
" --{}{} {}\n",
|
||||||
|
flag,
|
||||||
|
if !ty.1.is_empty() { ":" } else { "" },
|
||||||
|
ty.1
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NamedType::Mandatory(s, m) => {
|
||||||
|
if let Some(c) = s {
|
||||||
|
format!(
|
||||||
|
" -{}, --{} <{}> (required parameter){} {}\n",
|
||||||
|
c,
|
||||||
|
flag,
|
||||||
|
m.display(),
|
||||||
|
if !ty.1.is_empty() { ":" } else { "" },
|
||||||
|
ty.1
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
format!(
|
||||||
|
" --{} <{}> (required parameter){} {}\n",
|
||||||
|
flag,
|
||||||
|
m.display(),
|
||||||
|
if !ty.1.is_empty() { ":" } else { "" },
|
||||||
|
ty.1
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
NamedType::Optional(s, o) => {
|
||||||
|
if let Some(c) = s {
|
||||||
|
format!(
|
||||||
|
" -{}, --{} <{}>{} {}\n",
|
||||||
|
c,
|
||||||
|
flag,
|
||||||
|
o.display(),
|
||||||
|
if !ty.1.is_empty() { ":" } else { "" },
|
||||||
|
ty.1
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
format!(
|
||||||
|
" --{} <{}>{} {}\n",
|
||||||
|
flag,
|
||||||
|
o.display(),
|
||||||
|
if !ty.1.is_empty() { ":" } else { "" },
|
||||||
|
ty.1
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
long_desc.push_str(&msg);
|
||||||
|
}
|
||||||
|
long_desc
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::Help;
|
use super::Help;
|
||||||
|
|
Loading…
Reference in a new issue