From 2a0961701c4cabecc53d134ed1782e5612e64580 Mon Sep 17 00:00:00 2001 From: Gregory Mullen Date: Thu, 27 Jun 2019 10:33:11 -0700 Subject: Implement basic tab completion support Tab completion currently only works on commands. Contextual completion will be added in the future. --- widgets/aerc.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'widgets/aerc.go') diff --git a/widgets/aerc.go b/widgets/aerc.go index 8aa1e2c..ade56d1 100644 --- a/widgets/aerc.go +++ b/widgets/aerc.go @@ -14,6 +14,7 @@ import ( type Aerc struct { accounts map[string]*AccountView cmd func(cmd string) error + complete func(cmd string) []string conf *config.AercConfig focused libui.Interactive grid *libui.Grid @@ -26,7 +27,7 @@ type Aerc struct { } func NewAerc(conf *config.AercConfig, logger *log.Logger, - cmd func(cmd string) error) *Aerc { + cmd func(cmd string) error, complete func(cmd string) []string) *Aerc { tabs := libui.NewTabs() @@ -49,6 +50,7 @@ func NewAerc(conf *config.AercConfig, logger *log.Logger, accounts: make(map[string]*AccountView), conf: conf, cmd: cmd, + complete: complete, grid: grid, logger: logger, statusbar: statusbar, @@ -289,6 +291,8 @@ func (aerc *Aerc) BeginExCommand() { }, func() { aerc.statusbar.Pop() aerc.focus(previous) + }, func(cmd string) []string { + return aerc.complete(cmd) }) aerc.statusbar.Push(exline) aerc.focus(exline) -- cgit v1.2.3