aerc/commands/next-tab.go
Koni Marti 2512c0403f statusline: implement per-account status
Implement a statusline state for each account. Keep the ex line and the
push notifications global. Add account name prefix to push
notifications. Prefix status line with account name when multiple
accounts are available.

Use account-specific status line for each tab where an account is
defined.

Handle threading, filter/search, viewer passthrough and connection
status.

Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
2022-03-18 23:42:07 +01:00

52 lines
827 B
Go

package commands
import (
"fmt"
"strconv"
"git.sr.ht/~rjarry/aerc/widgets"
)
type NextPrevTab struct{}
func init() {
register(NextPrevTab{})
}
func (NextPrevTab) Aliases() []string {
return []string{"next-tab", "prev-tab"}
}
func (NextPrevTab) Complete(aerc *widgets.Aerc, args []string) []string {
return nil
}
func (NextPrevTab) Execute(aerc *widgets.Aerc, args []string) error {
if len(args) > 2 {
return nextPrevTabUsage(args[0])
}
var (
n int = 1
err error
)
if len(args) > 1 {
n, err = strconv.Atoi(args[1])
if err != nil {
return nextPrevTabUsage(args[0])
}
}
for ; n > 0; n-- {
if args[0] == "prev-tab" {
aerc.PrevTab()
} else {
aerc.NextTab()
}
}
aerc.UpdateStatus()
return nil
}
func nextPrevTabUsage(cmd string) error {
return fmt.Errorf("Usage: %s [n]", cmd)
}