diff options
author | Reto Brunner <reto@labrat.space> | 2020-04-11 04:12:38 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2020-04-11 10:46:46 -0400 |
commit | 1fbce012ed85f385be4add710c2de5bb09c81998 (patch) | |
tree | e5a8f8a9d0795d8c9764104a05c4bac8c78f353b | |
parent | 2b53347d0de8ca3b2bfdf539539dac01f7424678 (diff) | |
download | aerc-1fbce012ed85f385be4add710c2de5bb09c81998.zip |
msg/archive: complete the possible options
-rw-r--r-- | commands/commands.go | 15 | ||||
-rw-r--r-- | commands/msg/archive.go | 3 |
2 files changed, 17 insertions, 1 deletions
diff --git a/commands/commands.go b/commands/commands.go index 39720bf..0c761d1 100644 --- a/commands/commands.go +++ b/commands/commands.go @@ -128,6 +128,21 @@ func GetFolders(aerc *widgets.Aerc, args []string) []string { return out } +// CompletionFromList provides a convenience wrapper for commands to use in the +// Complete function. It simply matches the items provided in valid +func CompletionFromList(valid []string, args []string) []string { + out := make([]string, 0) + if len(args) == 0 { + return valid + } + for _, v := range valid { + if hasCaseSmartPrefix(v, args[0]) { + out = append(out, v) + } + } + return out +} + func GetLabels(aerc *widgets.Aerc, args []string) []string { if len(args) == 0 { return aerc.SelectedAccount().Labels() diff --git a/commands/msg/archive.go b/commands/msg/archive.go index 966d598..783ab04 100644 --- a/commands/msg/archive.go +++ b/commands/msg/archive.go @@ -32,7 +32,8 @@ func (Archive) Aliases() []string { } func (Archive) Complete(aerc *widgets.Aerc, args []string) []string { - return nil + valid := []string{"flat", "year", "month"} + return commands.CompletionFromList(valid, args) } func (Archive) Execute(aerc *widgets.Aerc, args []string) error { |