From bfefafff27b126c485054c4d357e095ea2bd1147 Mon Sep 17 00:00:00 2001 From: Galen Abell Date: Tue, 30 Jul 2019 15:10:58 -0400 Subject: [PATCH] Add filesystem completions for :attach and :cd Tab-completions now cycle through filesystem paths when using :attach or :cd commands. --- commands/cd.go | 18 +++++++++++++++++- commands/compose/attach.go | 8 +++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/commands/cd.go b/commands/cd.go index 8c9cb21..3630cae 100644 --- a/commands/cd.go +++ b/commands/cd.go @@ -3,6 +3,7 @@ package commands import ( "errors" "os" + "strings" "git.sr.ht/~sircmpwn/aerc/widgets" "github.com/mitchellh/go-homedir" @@ -23,7 +24,22 @@ func (_ ChangeDirectory) Aliases() []string { } func (_ ChangeDirectory) Complete(aerc *widgets.Aerc, args []string) []string { - return nil + path := "" + if len(args) >= 1 { + path = args[0] + } + + completions := CompletePath(path) + + var dirs []string + for _, c := range completions { + // filter out non-directories + if strings.HasSuffix(c, "/") { + dirs = append(dirs, c) + } + } + + return dirs } func (_ ChangeDirectory) Execute(aerc *widgets.Aerc, args []string) error { diff --git a/commands/compose/attach.go b/commands/compose/attach.go index 43aa32d..7501a33 100644 --- a/commands/compose/attach.go +++ b/commands/compose/attach.go @@ -5,6 +5,7 @@ import ( "os" "time" + "git.sr.ht/~sircmpwn/aerc/commands" "git.sr.ht/~sircmpwn/aerc/widgets" "github.com/gdamore/tcell" "github.com/mitchellh/go-homedir" @@ -21,7 +22,12 @@ func (_ Attach) Aliases() []string { } func (_ Attach) Complete(aerc *widgets.Aerc, args []string) []string { - return nil + path := "" + if len(args) >= 1 { + path = args[0] + } + + return commands.CompletePath(path) } func (_ Attach) Execute(aerc *widgets.Aerc, args []string) error {