diff options
author | Robin Jarry <robin@jarry.cc> | 2023-10-30 21:05:56 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-11-02 11:59:39 +0100 |
commit | 2dfeb7130a8fb97d927a55efa738f110f46cb688 (patch) | |
tree | cca6a06999d2be32f01e4ac6ae2998c5f24c2895 /commands/commands.go | |
parent | faa879f9a84d44f9b251410fc923a827a44df1a7 (diff) | |
download | aerc-2dfeb7130a8fb97d927a55efa738f110f46cb688.tar.gz |
completion: refactor filter list api
Remove CompletionFromList which is a trivial wrapper around FilterList.
Remove the prefix, suffix and isFuzzy arguments from FilterList.
Replace prefix, suffix by an optional callback to allow post processing
of completion results before presenting them to the user.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Inwit <inwit@sindominio.net>
Diffstat (limited to 'commands/commands.go')
-rw-r--r-- | commands/commands.go | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/commands/commands.go b/commands/commands.go index 9c193018..2893aa82 100644 --- a/commands/commands.go +++ b/commands/commands.go @@ -163,9 +163,7 @@ func GetTemplateCompletion( options := FilterList( templates.Terms(), strings.TrimSpace(search), - "", - "", - app.SelectedAccountUiConfig().FuzzyComplete, + nil, ) return options, prefix + padding, true case countLeft == countRight: @@ -196,7 +194,7 @@ func GetFolders(arg string) []string { if acct == nil { return make([]string, 0) } - return CompletionFromList(acct.Directories().List(), arg) + return FilterList(acct.Directories().List(), arg, nil) } func GetTemplates(arg string) []string { @@ -213,13 +211,7 @@ func GetTemplates(arg string) []string { names = append(names, n) } sort.Strings(names) - return CompletionFromList(names, arg) -} - -// CompletionFromList provides a convenience wrapper for commands to use in a -// complete callback. It simply matches the items provided in valid -func CompletionFromList(valid []string, arg string) []string { - return FilterList(valid, arg, "", "", app.SelectedAccountUiConfig().FuzzyComplete) + return FilterList(names, arg, nil) } func GetLabels(arg string) []string { @@ -240,7 +232,9 @@ func GetLabels(arg string) []string { } arg = strings.TrimLeft(arg, "+-") } - return FilterList(acct.Labels(), arg, prefix, " ", acct.UiConfig().FuzzyComplete) + return FilterList(acct.Labels(), arg, func(s string) string { + return opt.QuoteArg(prefix+s) + " " + }) } // hasCaseSmartPrefix checks whether s starts with prefix, using a case |