From dd6fe6a04aa049eda22451ba4af7bc99f75a29dd Mon Sep 17 00:00:00 2001 From: Leon Date: Sat, 24 Dec 2022 23:16:29 +1000 Subject: [PATCH] Add extra_usage messages for subcommand-only commands (#7594) # Description The message reads "You must use one of the following subcommands. Using this command as-is will only produce this help message." and is added to commands like `into`, `bytes`, `str`, etc. # User-Facing Changes See above. # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --- crates/nu-command/src/bits/bits_.rs | 4 ++++ crates/nu-command/src/bytes/bytes_.rs | 4 ++++ crates/nu-command/src/conversions/into/command.rs | 4 ++++ crates/nu-command/src/core_commands/overlay/command.rs | 4 +++- crates/nu-command/src/date/date_.rs | 4 ++++ crates/nu-command/src/env/config/config_.rs | 4 ++++ crates/nu-command/src/filters/roll/roll_.rs | 4 ++++ crates/nu-command/src/formats/from/command.rs | 4 ++++ crates/nu-command/src/formats/to/command.rs | 4 ++++ crates/nu-command/src/hash/hash_.rs | 4 ++++ crates/nu-command/src/math/math_.rs | 4 ++++ crates/nu-command/src/path/path_.rs | 4 +++- .../nu-command/src/platform/reedline_commands/keybindings.rs | 4 ++++ crates/nu-command/src/random/random_.rs | 4 ++++ crates/nu-command/src/strings/split/command.rs | 4 ++++ crates/nu-command/src/strings/str_/case/str_.rs | 4 ++++ 16 files changed, 62 insertions(+), 2 deletions(-) diff --git a/crates/nu-command/src/bits/bits_.rs b/crates/nu-command/src/bits/bits_.rs index 68924e7d59..3a3952088b 100644 --- a/crates/nu-command/src/bits/bits_.rs +++ b/crates/nu-command/src/bits/bits_.rs @@ -23,6 +23,10 @@ impl Command for Bits { "Various commands for working with bits" } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/bytes/bytes_.rs b/crates/nu-command/src/bytes/bytes_.rs index a5789065bb..fb66ab223c 100644 --- a/crates/nu-command/src/bytes/bytes_.rs +++ b/crates/nu-command/src/bytes/bytes_.rs @@ -23,6 +23,10 @@ impl Command for Bytes { "Various commands for working with byte data" } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/conversions/into/command.rs b/crates/nu-command/src/conversions/into/command.rs index b0a1ccdfb4..408acbf6ea 100644 --- a/crates/nu-command/src/conversions/into/command.rs +++ b/crates/nu-command/src/conversions/into/command.rs @@ -23,6 +23,10 @@ impl Command for Into { "Commands to convert data from one type to another." } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/core_commands/overlay/command.rs b/crates/nu-command/src/core_commands/overlay/command.rs index e08bc4cadf..d48ae5811f 100644 --- a/crates/nu-command/src/core_commands/overlay/command.rs +++ b/crates/nu-command/src/core_commands/overlay/command.rs @@ -25,7 +25,9 @@ impl Command for Overlay { fn extra_usage(&self) -> &str { r#"This command is a parser keyword. For details, check: - https://www.nushell.sh/book/thinking_in_nu.html"# + https://www.nushell.sh/book/thinking_in_nu.html + + You must use one of the following subcommands. Using this command as-is will only produce this help message."# } fn is_parser_keyword(&self) -> bool { diff --git a/crates/nu-command/src/date/date_.rs b/crates/nu-command/src/date/date_.rs index 18326febf1..eb7bbebd95 100644 --- a/crates/nu-command/src/date/date_.rs +++ b/crates/nu-command/src/date/date_.rs @@ -23,6 +23,10 @@ impl Command for Date { "Date-related commands" } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn search_terms(&self) -> Vec<&str> { vec![ "time", diff --git a/crates/nu-command/src/env/config/config_.rs b/crates/nu-command/src/env/config/config_.rs index dac39c442b..0340cefc43 100644 --- a/crates/nu-command/src/env/config/config_.rs +++ b/crates/nu-command/src/env/config/config_.rs @@ -23,6 +23,10 @@ impl Command for ConfigMeta { "Edit nushell configuration files" } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/filters/roll/roll_.rs b/crates/nu-command/src/filters/roll/roll_.rs index 007a1508a8..093b5d6711 100644 --- a/crates/nu-command/src/filters/roll/roll_.rs +++ b/crates/nu-command/src/filters/roll/roll_.rs @@ -25,6 +25,10 @@ impl Command for Roll { "Rolling commands for tables" } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/formats/from/command.rs b/crates/nu-command/src/formats/from/command.rs index ce1d5143bb..b0fd3b4050 100644 --- a/crates/nu-command/src/formats/from/command.rs +++ b/crates/nu-command/src/formats/from/command.rs @@ -21,6 +21,10 @@ impl Command for From { .input_output_types(vec![(Type::Nothing, Type::String)]) } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/formats/to/command.rs b/crates/nu-command/src/formats/to/command.rs index c6cc854a14..6a931366fe 100644 --- a/crates/nu-command/src/formats/to/command.rs +++ b/crates/nu-command/src/formats/to/command.rs @@ -21,6 +21,10 @@ impl Command for To { .input_output_types(vec![(Type::Nothing, Type::String)]) } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/hash/hash_.rs b/crates/nu-command/src/hash/hash_.rs index 364a43839f..4882dd92d6 100644 --- a/crates/nu-command/src/hash/hash_.rs +++ b/crates/nu-command/src/hash/hash_.rs @@ -21,6 +21,10 @@ impl Command for Hash { "Apply hash function." } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/math/math_.rs b/crates/nu-command/src/math/math_.rs index f90a043cab..2104c67689 100644 --- a/crates/nu-command/src/math/math_.rs +++ b/crates/nu-command/src/math/math_.rs @@ -23,6 +23,10 @@ impl Command for MathCommand { "Use mathematical functions as aggregate functions on a list of numbers or tables." } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/path/path_.rs b/crates/nu-command/src/path/path_.rs index 5ba56441ab..e68ec101c4 100644 --- a/crates/nu-command/src/path/path_.rs +++ b/crates/nu-command/src/path/path_.rs @@ -22,7 +22,9 @@ impl Command for PathCommand { } fn extra_usage(&self) -> &str { - r#"There are three ways to represent a path: + r#"You must use one of the following subcommands. Using this command as-is will only produce this help message. + +There are three ways to represent a path: * As a path literal, e.g., '/home/viking/spam.txt' * As a structured path: a table with 'parent', 'stem', and 'extension' (and diff --git a/crates/nu-command/src/platform/reedline_commands/keybindings.rs b/crates/nu-command/src/platform/reedline_commands/keybindings.rs index c1f7a5f3d1..15c1160ba5 100644 --- a/crates/nu-command/src/platform/reedline_commands/keybindings.rs +++ b/crates/nu-command/src/platform/reedline_commands/keybindings.rs @@ -23,6 +23,10 @@ impl Command for Keybindings { "Keybindings related commands" } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn search_terms(&self) -> Vec<&str> { vec!["shortcut", "hotkey"] } diff --git a/crates/nu-command/src/random/random_.rs b/crates/nu-command/src/random/random_.rs index f15d8de31d..3f527cf36a 100644 --- a/crates/nu-command/src/random/random_.rs +++ b/crates/nu-command/src/random/random_.rs @@ -23,6 +23,10 @@ impl Command for RandomCommand { "Generate a random value." } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn search_terms(&self) -> Vec<&str> { vec!["generate", "generator"] } diff --git a/crates/nu-command/src/strings/split/command.rs b/crates/nu-command/src/strings/split/command.rs index 2d1ebd69aa..065319c108 100644 --- a/crates/nu-command/src/strings/split/command.rs +++ b/crates/nu-command/src/strings/split/command.rs @@ -23,6 +23,10 @@ impl Command for SplitCommand { "Split contents across desired subcommand (like row, column) via the separator." } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState, diff --git a/crates/nu-command/src/strings/str_/case/str_.rs b/crates/nu-command/src/strings/str_/case/str_.rs index c2c395605e..bf806c0eef 100644 --- a/crates/nu-command/src/strings/str_/case/str_.rs +++ b/crates/nu-command/src/strings/str_/case/str_.rs @@ -23,6 +23,10 @@ impl Command for Str { "Various commands for working with string data" } + fn extra_usage(&self) -> &str { + "You must use one of the following subcommands. Using this command as-is will only produce this help message." + } + fn run( &self, engine_state: &EngineState,