Add filesystem completions for :attach and :cd

Tab-completions now cycle through filesystem paths when using :attach or
:cd commands.
This commit is contained in:
Galen Abell 2019-07-30 15:10:58 -04:00 committed by Drew DeVault
parent c4b57aaad8
commit bfefafff27
2 changed files with 24 additions and 2 deletions

View file

@ -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 {

View file

@ -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 {