Also make the did-you-mean template pluggable

main
Dan Buch 2 years ago
parent 68bd4903fd
commit 5bb9f453dc
Signed by: meatballhat
GPG Key ID: A12F782281063434

@ -11,7 +11,7 @@ import (
"time" "time"
) )
const didYouMeanTemplate = "Did you mean '%s'?" const suggestDidYouMeanTemplate = "Did you mean %q?"
var ( var (
changeLogURL = "https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md" changeLogURL = "https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md"
@ -21,8 +21,9 @@ var (
fmt.Sprintf("Must be `func(*Context`)` or `func(*Context) error). %s", contactSysadmin)+ fmt.Sprintf("Must be `func(*Context`)` or `func(*Context) error). %s", contactSysadmin)+
fmt.Sprintf("See %s", appActionDeprecationURL), 2) fmt.Sprintf("See %s", appActionDeprecationURL), 2)
SuggestFlag SuggestFlagFunc = suggestFlag SuggestFlag SuggestFlagFunc = suggestFlag
SuggestCommand SuggestCommandFunc = suggestCommand SuggestCommand SuggestCommandFunc = suggestCommand
SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate
) )
// App is the main structure of a cli application. It is recommended that // App is the main structure of a cli application. It is recommended that
@ -361,7 +362,7 @@ func (a *App) suggestFlagFromError(err error, command string) (string, error) {
return "", err return "", err
} }
return fmt.Sprintf(didYouMeanTemplate+"\n\n", suggestion), nil return fmt.Sprintf(SuggestDidYouMeanTemplate+"\n\n", suggestion), nil
} }
// RunAndExitOnError calls .Run() and exits non-zero if an error was returned // RunAndExitOnError calls .Run() and exits non-zero if an error was returned

@ -27,8 +27,9 @@ application:
VARIABLES VARIABLES
var ( var (
SuggestFlag SuggestFlagFunc = suggestFlag SuggestFlag SuggestFlagFunc = suggestFlag
SuggestCommand SuggestCommandFunc = suggestCommand SuggestCommand SuggestCommandFunc = suggestCommand
SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate
) )
var AppHelpTemplate = `NAME: var AppHelpTemplate = `NAME:
{{.Name}}{{if .Usage}} - {{.Usage}}{{end}} {{.Name}}{{if .Usage}} - {{.Usage}}{{end}}

@ -47,5 +47,5 @@ func suggestCommand(commands []*Command, provided string) (suggestion string) {
} }
} }
return fmt.Sprintf(didYouMeanTemplate, suggestion) return fmt.Sprintf(SuggestDidYouMeanTemplate, suggestion)
} }

@ -56,7 +56,7 @@ func TestSuggestFlagFromError(t *testing.T) {
) )
// Then // Then
expect(t, res, fmt.Sprintf(didYouMeanTemplate+"\n\n", testCase.expected)) expect(t, res, fmt.Sprintf(SuggestDidYouMeanTemplate+"\n\n", testCase.expected))
} }
} }
@ -116,7 +116,7 @@ func TestSuggestCommand(t *testing.T) {
res := suggestCommand(app.Commands, testCase.provided) res := suggestCommand(app.Commands, testCase.provided)
// Then // Then
expect(t, res, fmt.Sprintf(didYouMeanTemplate, testCase.expected)) expect(t, res, fmt.Sprintf(SuggestDidYouMeanTemplate, testCase.expected))
} }
} }
@ -140,7 +140,7 @@ func ExampleApp_Suggest() {
// Output: // Output:
// Incorrect Usage. flag provided but not defined: -nema // Incorrect Usage. flag provided but not defined: -nema
// //
// Did you mean '--name'? // Did you mean "--name"?
// //
// (this space intentionally left blank) // (this space intentionally left blank)
} }
@ -181,7 +181,7 @@ func ExampleApp_Suggest_command() {
// Output: // Output:
// Incorrect Usage: flag provided but not defined: -sliming // Incorrect Usage: flag provided but not defined: -sliming
// //
// Did you mean '--smiling'? // Did you mean "--smiling"?
// //
// (this space intentionally left blank) // (this space intentionally left blank)
} }

@ -27,8 +27,9 @@ application:
VARIABLES VARIABLES
var ( var (
SuggestFlag SuggestFlagFunc = suggestFlag SuggestFlag SuggestFlagFunc = suggestFlag
SuggestCommand SuggestCommandFunc = suggestCommand SuggestCommand SuggestCommandFunc = suggestCommand
SuggestDidYouMeanTemplate string = suggestDidYouMeanTemplate
) )
var AppHelpTemplate = `NAME: var AppHelpTemplate = `NAME:
{{.Name}}{{if .Usage}} - {{.Usage}}{{end}} {{.Name}}{{if .Usage}} - {{.Usage}}{{end}}

Loading…
Cancel
Save