Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(error): Give more idea why we are suggesting an arg #4798

Merged
merged 1 commit into from Mar 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
24 changes: 11 additions & 13 deletions clap_builder/src/error/format.rs
Expand Up @@ -429,19 +429,22 @@ fn try_help(styled: &mut StyledStr, help: Option<&str>) {
fn did_you_mean(styled: &mut StyledStr, context: &str, valid: &ContextValue) {
if let ContextValue::String(valid) = valid {
styled.none(TAB);
styled.good("tip: ");
styled.good("tip: a similar ");
styled.none(context);
styled.none(" '");
styled.none(" exists: '");
styled.good(valid);
styled.none("' exists");
styled.none("'");
} else if let ContextValue::Strings(valid) = valid {
styled.none(TAB);
styled.good("tip: ");
styled.none(context);
if valid.len() > 1 {
styled.none("s");
if valid.len() == 1 {
styled.good("tip: a similar ");
styled.none(context);
styled.none(" exists: ");
} else {
styled.good("tip: some similar ");
styled.none(context);
styled.none("s exist: ");
}
styled.none(" ");
for (i, valid) in valid.iter().enumerate() {
if i != 0 {
styled.none(", ");
Expand All @@ -450,11 +453,6 @@ fn did_you_mean(styled: &mut StyledStr, context: &str, valid: &ContextValue) {
styled.good(valid);
styled.none("'");
}
if valid.len() == 1 {
styled.none(" exists");
} else {
styled.none(" exist");
}
}
}

Expand Down
4 changes: 2 additions & 2 deletions tests/builder/opts.rs
Expand Up @@ -448,7 +448,7 @@ fn did_you_mean() {
static DYM: &str = "\
error: unexpected argument '--optio' found

tip: argument '--option' exists
tip: a similar argument exists: '--option'

Usage: clap-test --option <opt>... [positional] [positional2] [positional3]...

Expand Down Expand Up @@ -546,7 +546,7 @@ fn issue_1073_suboptimal_flag_suggestion() {
static DYM_ISSUE_1073: &str = "\
error: unexpected argument '--files-without-matches' found

tip: argument '--files-without-match' exists
tip: a similar argument exists: '--files-without-match'

Usage: ripgrep-616 --files-without-match

Expand Down
8 changes: 4 additions & 4 deletions tests/builder/possible_values.rs
Expand Up @@ -181,7 +181,7 @@ fn possible_values_output() {
error: invalid value 'slo' for '-O <option>'
[possible values: slow, fast, \"ludicrous speed\"]

tip: value 'slow' exists
tip: a similar value exists: 'slow'

For more information, try '--help'.
";
Expand Down Expand Up @@ -215,7 +215,7 @@ fn possible_values_alias_output() {
error: invalid value 'slo' for '-O <option>'
[possible values: slow, fast, \"ludicrous speed\"]

tip: value 'slow' exists
tip: a similar value exists: 'slow'

For more information, try '--help'.
";
Expand Down Expand Up @@ -253,7 +253,7 @@ fn possible_values_hidden_output() {
error: invalid value 'slo' for '-O <option>'
[possible values: slow, fast, \"ludicrous speed\"]

tip: value 'slow' exists
tip: a similar value exists: 'slow'

For more information, try '--help'.
";
Expand Down Expand Up @@ -292,7 +292,7 @@ fn escaped_possible_values_output() {
error: invalid value 'ludicrous' for '-O <option>'
[possible values: slow, fast, \"ludicrous speed\"]

tip: value 'ludicrous speed' exists
tip: a similar value exists: 'ludicrous speed'

For more information, try '--help'.
";
Expand Down
6 changes: 3 additions & 3 deletions tests/builder/subcommands.rs
Expand Up @@ -100,7 +100,7 @@ fn subcmd_did_you_mean_output() {
static DYM_SUBCMD: &str = "\
error: unrecognized subcommand 'subcm'

tip: subcommand 'subcmd' exists
tip: a similar subcommand exists: 'subcmd'
tip: to pass 'subcm' as a value, use 'dym -- subcm'

Usage: dym [COMMAND]
Expand All @@ -120,7 +120,7 @@ fn subcmd_did_you_mean_output_ambiguous() {
static DYM_SUBCMD_AMBIGUOUS: &str = "\
error: unrecognized subcommand 'te'

tip: subcommands 'test', 'temp' exist
tip: some similar subcommands exist: 'test', 'temp'
tip: to pass 'te' as a value, use 'dym -- te'

Usage: dym [COMMAND]
Expand Down Expand Up @@ -517,7 +517,7 @@ For more information, try 'help'.
static BAZ_EXPECTED: &str = "\
error: unrecognized subcommand 'baz'

tip: subcommand 'bar' exists
tip: a similar subcommand exists: 'bar'
tip: to pass 'baz' as a value, use ' -- baz'

Usage: <COMMAND>
Expand Down