Correct error description for unknown external commands (#8868)

# Description
Fixes issue https://github.com/nushell/nushell/issues/8643 

# User-Facing Changes

Before
<img width="442" alt="image"
src="https://user-images.githubusercontent.com/5063945/231624884-49a1ce4e-598d-4d19-882d-c22d168e6a5a.png">

After
<img width="449" alt="image"
src="https://user-images.githubusercontent.com/5063945/231625076-5f1becd7-7477-4d2f-b765-3956210da7f2.png">
This commit is contained in:
Vaishaag Subhagan 2023-04-14 03:33:05 +10:00 committed by GitHub
parent 017151dff1
commit 3603610026
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 1 deletions

View file

@ -312,7 +312,12 @@ impl ExternalCommand {
format!("command '{cmd_name}' was not found but it exists in module '{module_name}'; try importing it with `use`")
}
} else {
format!("did you mean '{s}'?")
// If command and suggestion are the same, display not found
if cmd_name == &s {
format!("'{cmd_name}' was not found")
} else {
format!("did you mean '{s}'?")
}
}
}
}

View file

@ -128,6 +128,18 @@ fn command_not_found_error_suggests_typo_fix() {
assert!(actual.err.contains("timeit"));
}
#[test]
fn command_not_found_error_shows_not_found() {
let actual = nu!(
cwd: ".",
r#"
export extern "foo" [];
foo
"#
);
assert!(actual.err.contains("'foo' was not found"));
}
#[test]
fn command_substitution_wont_output_extra_newline() {
let actual = nu!(