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:
parent
c4b57aaad8
commit
bfefafff27
2 changed files with 24 additions and 2 deletions
|
@ -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 {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Reference in a new issue