Skip to content

Commit

Permalink
Merge pull request #4798 from epage/similar
Browse files Browse the repository at this point in the history
fix(error): Give more idea why we are suggesting an arg
  • Loading branch information
epage committed Mar 28, 2023
2 parents e36ae19 + fa60e72 commit 53cb165
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 22 deletions.
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

0 comments on commit 53cb165

Please sign in to comment.