aboutsummaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
Diffstat (limited to 'commands')
-rw-r--r--commands/commands.go17
-rw-r--r--commands/ct.go3
2 files changed, 17 insertions, 3 deletions
diff --git a/commands/commands.go b/commands/commands.go
index c6f149f2..3f7fbcd4 100644
--- a/commands/commands.go
+++ b/commands/commands.go
@@ -2,6 +2,7 @@ package commands
import (
"errors"
+ "sort"
"strings"
"unicode"
@@ -73,12 +74,19 @@ func (cmds *Commands) GetCompletions(aerc *widgets.Aerc, cmd string) []string {
}
if len(args) == 0 {
- return nil
+ names := cmds.Names()
+ sort.Strings(names)
+ return names
}
- if len(args) > 1 {
+ if len(args) > 1 || cmd[len(cmd)-1] == ' ' {
if cmd, ok := cmds.dict()[args[0]]; ok {
- completions := cmd.Complete(aerc, args[1:])
+ var completions []string
+ if len(args) > 1 {
+ completions = cmd.Complete(aerc, args[1:])
+ } else {
+ completions = cmd.Complete(aerc, []string{})
+ }
if completions != nil && len(completions) == 0 {
return nil
}
@@ -109,6 +117,9 @@ func (cmds *Commands) GetCompletions(aerc *widgets.Aerc, cmd string) []string {
func GetFolders(aerc *widgets.Aerc, args []string) []string {
out := make([]string, 0)
lower_only := false
+ if len(args) == 0 {
+ return aerc.SelectedAccount().Directories().List()
+ }
for _, rune := range args[0] {
lower_only = lower_only || unicode.IsLower(rune)
}
diff --git a/commands/ct.go b/commands/ct.go
index ab2993d4..19fb63aa 100644
--- a/commands/ct.go
+++ b/commands/ct.go
@@ -19,6 +19,9 @@ func (_ ChangeTab) Aliases() []string {
}
func (_ ChangeTab) Complete(aerc *widgets.Aerc, args []string) []string {
+ if len(args) == 0 {
+ return aerc.TabNames()
+ }
out := make([]string, 0)
for _, tab := range aerc.TabNames() {
if strings.HasPrefix(tab, args[0]) {