1package account 2 3import ( 4 "errors" 5 "fmt" 6 7 "git.sr.ht/~sircmpwn/aerc/widgets" 8) 9 10type NextPrevResult struct{} 11 12func init() { 13 register(NextPrevResult{}) 14} 15 16func (NextPrevResult) Aliases() []string { 17 return []string{"next-result", "prev-result"} 18} 19 20func (NextPrevResult) Complete(aerc *widgets.Aerc, args []string) []string { 21 return nil 22} 23 24func (NextPrevResult) Execute(aerc *widgets.Aerc, args []string) error { 25 if len(args) > 1 { 26 return nextPrevResultUsage(args[0]) 27 } 28 acct := aerc.SelectedAccount() 29 if acct == nil { 30 return errors.New("No account selected") 31 } 32 if args[0] == "prev-result" { 33 store := acct.Store() 34 if store != nil { 35 store.PrevResult() 36 } 37 acct.Messages().Scroll() 38 } else { 39 store := acct.Store() 40 if store != nil { 41 store.NextResult() 42 } 43 acct.Messages().Scroll() 44 } 45 return nil 46} 47 48func nextPrevResultUsage(cmd string) error { 49 return fmt.Errorf("Usage: %s [<n>[%%]]", cmd) 50} 51