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 ( import (
"errors" "errors"
"os" "os"
"strings"
"git.sr.ht/~sircmpwn/aerc/widgets" "git.sr.ht/~sircmpwn/aerc/widgets"
"github.com/mitchellh/go-homedir" "github.com/mitchellh/go-homedir"
@ -23,7 +24,22 @@ func (_ ChangeDirectory) Aliases() []string {
} }
func (_ ChangeDirectory) Complete(aerc *widgets.Aerc, args []string) []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 { func (_ ChangeDirectory) Execute(aerc *widgets.Aerc, args []string) error {

View File

@ -5,6 +5,7 @@ import (
"os" "os"
"time" "time"
"git.sr.ht/~sircmpwn/aerc/commands"
"git.sr.ht/~sircmpwn/aerc/widgets" "git.sr.ht/~sircmpwn/aerc/widgets"
"github.com/gdamore/tcell" "github.com/gdamore/tcell"
"github.com/mitchellh/go-homedir" "github.com/mitchellh/go-homedir"
@ -21,7 +22,12 @@ func (_ Attach) Aliases() []string {
} }
func (_ Attach) Complete(aerc *widgets.Aerc, args []string) []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 { func (_ Attach) Execute(aerc *widgets.Aerc, args []string) error {