From 1fbce012ed85f385be4add710c2de5bb09c81998 Mon Sep 17 00:00:00 2001 From: Reto Brunner Date: Sat, 11 Apr 2020 04:12:38 +0200 Subject: msg/archive: complete the possible options --- commands/commands.go | 15 +++++++++++++++ commands/msg/archive.go | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) 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 { -- cgit 1.4.1-2-gfad0