mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 12:46:00 +02:00
add command_type to help (#14165)
# Description This PR adds an indicator when listing subcommands. That indicator tells whether the command is a plugin, alias, or custom_command.  I changed some of the API to make this work a little easier, namely `get_signatures()` is now `get_signatures_and_declids()`. It was used in only one other place (run-external), so I thought it was fine to change it. There is a long-standing issue with aliases where they reference the command name instead of the alias name. This PR doesn't fix that bug. Example. ```nushell ❯ alias "str fill" = str wrap ``` ```nushell ❯ str ... other stuff Subcommands: str wrap (alias) - Alias for `str wrap` str wrap (plugin) - Wrap text passed into pipeline. ``` # User-Facing Changes Slightly different output of subcommands.
This commit is contained in:
@ -449,8 +449,8 @@ pub fn command_not_found(
|
||||
}
|
||||
|
||||
// Try to match the name with the search terms of existing commands.
|
||||
let signatures = engine_state.get_signatures(false);
|
||||
if let Some(sig) = signatures.iter().find(|sig| {
|
||||
let signatures = engine_state.get_signatures_and_declids(false);
|
||||
if let Some((sig, _)) = signatures.iter().find(|(sig, _)| {
|
||||
sig.search_terms
|
||||
.iter()
|
||||
.any(|term| term.to_folded_case() == name.to_folded_case())
|
||||
@ -463,7 +463,7 @@ pub fn command_not_found(
|
||||
}
|
||||
|
||||
// Try a fuzzy search on the names of all existing commands.
|
||||
if let Some(cmd) = did_you_mean(signatures.iter().map(|sig| &sig.name), name) {
|
||||
if let Some(cmd) = did_you_mean(signatures.iter().map(|(sig, _)| &sig.name), name) {
|
||||
// The user is invoking an external command with the same name as a
|
||||
// built-in command. Remind them of this.
|
||||
if cmd == name {
|
||||
|
Reference in New Issue
Block a user