~sircmpwn/aerc

5d0402aeea1dcc69adb46227ab1cd73b5e768880 — Drew DeVault 1 year, 7 months ago 04d9ab3
Add message view commands, :close
M aerc.go => aerc.go +6 -0
@@ 12,6 12,7 @@ import (
	"git.sr.ht/~sircmpwn/aerc2/config"
	"git.sr.ht/~sircmpwn/aerc2/commands"
	"git.sr.ht/~sircmpwn/aerc2/commands/account"
	"git.sr.ht/~sircmpwn/aerc2/commands/msgview"
	"git.sr.ht/~sircmpwn/aerc2/commands/terminal"
	libui "git.sr.ht/~sircmpwn/aerc2/lib/ui"
	"git.sr.ht/~sircmpwn/aerc2/widgets"


@@ 24,6 25,11 @@ func getCommands(selected libui.Drawable) []*commands.Commands {
			account.AccountCommands,
			commands.GlobalCommands,
		}
	case *widgets.MessageViewer:
		return []*commands.Commands{
			msgview.MessageViewCommands,
			commands.GlobalCommands,
		}
	case *widgets.Terminal:
		return []*commands.Commands{
			terminal.TerminalCommands,

A commands/msgview/close.go => commands/msgview/close.go +21 -0
@@ 0,0 1,21 @@
package msgview

import (
	"errors"

	"git.sr.ht/~sircmpwn/aerc2/widgets"
)

func init() {
	register("close", CommandClose)
}

func CommandClose(aerc *widgets.Aerc, args []string) error {
	if len(args) != 1 {
		return errors.New("Usage: close")
	}
	mv, _ := aerc.SelectedTab().(*widgets.MessageViewer)
	aerc.RemoveTab(mv)
	return nil
}


A commands/msgview/msgview.go => commands/msgview/msgview.go +16 -0
@@ 0,0 1,16 @@
package msgview

import (
	"git.sr.ht/~sircmpwn/aerc2/commands"
)

var (
	MessageViewCommands *commands.Commands
)

func register(name string, cmd commands.AercCommand) {
	if MessageViewCommands == nil {
		MessageViewCommands = commands.NewCommands()
	}
	MessageViewCommands.Register(name, cmd)
}

M commands/terminal/close.go => commands/terminal/close.go +1 -4
@@ 14,10 14,7 @@ func CommandClose(aerc *widgets.Aerc, args []string) error {
	if len(args) != 1 {
		return errors.New("Usage: close")
	}
	term, ok := aerc.SelectedTab().(*widgets.Terminal)
	if !ok {
		return errors.New("Error: not a terminal")
	}
	term, _ := aerc.SelectedTab().(*widgets.Terminal)
	term.Close(nil)
	aerc.RemoveTab(term)
	return nil

M config/binds.conf => config/binds.conf +1 -1
@@ 32,7 32,7 @@ c = :cf<space>
$ = :term<space>
| = :pipe<space>

[msgview]
[view]
q = :close<Enter>
| = :pipe<space>
r = :reply<Enter>

M widgets/aerc.go => widgets/aerc.go +2 -0
@@ 93,6 93,8 @@ func (aerc *Aerc) getBindings() *config.KeyBindings {
	switch aerc.SelectedTab().(type) {
	case *AccountView:
		return aerc.conf.Bindings.MessageList
	case *MessageViewer:
		return aerc.conf.Bindings.MessageView
	case *Terminal:
		return aerc.conf.Bindings.Terminal
	default: