summary refs log tree commit diff stats
path: root/commands/commands.go
diff options
context:
space:
mode:
authorGregory Mullen <greg@cmdline.org>2019-07-03 09:54:10 -0700
committerDrew DeVault <sir@cmpwn.com>2019-07-04 11:28:04 -0400
commitf9d26eef58ce2b9fa1e2443032c17c2ccc6afa36 (patch)
tree86ca1765c913f9c3285755a1ea3874110dd8da04 /commands/commands.go
parent8d9d94f0ee63216b50674d0857ef1f2c744737d5 (diff)
downloadaerc-f9d26eef58ce2b9fa1e2443032c17c2ccc6afa36.tar.gz
Add IMAP folder tab completion
Credit for this fix goes to Reto; I guess if we're not gonna be mutt
we should probabaly do things correctly.
Diffstat (limited to 'commands/commands.go')
-rw-r--r--commands/commands.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/commands/commands.go b/commands/commands.go
index 8d50b41..e53bdfe 100644
--- a/commands/commands.go
+++ b/commands/commands.go
@@ -3,6 +3,7 @@ package commands
 import (
 	"errors"
 	"strings"
+	"unicode"
 
 	"github.com/google/shlex"
 
@@ -108,3 +109,25 @@ func (cmds *Commands) GetCompletions(aerc *widgets.Aerc, cmd string) []string {
 	}
 	return nil
 }
+
+const caps string = "ABCDEFGHIJKLMNOPQRSTUVXYZ"
+
+func GetFolders(aerc *widgets.Aerc, args []string) []string {
+	out := make([]string, 0)
+	lower_only := false
+	for _, rune := range args[0] {
+		lower_only = lower_only || unicode.IsLower(rune)
+	}
+
+	for _, dir := range aerc.SelectedAccount().Directories().List() {
+		test := dir
+		if lower_only {
+			test = strings.ToLower(dir)
+		}
+
+		if strings.HasPrefix(test, args[0]) {
+			out = append(out, dir)
+		}
+	}
+	return out
+}