ecd803aae4
Usage: :prompt <prompt> <command...> Displays the prompt on the status bar, waits for user input, then appends that input as the last argument to the command and executes it. The input is passed as one argument to the command, unless it is empty, in which case no extra argument is added.
33 lines
566 B
Go
33 lines
566 B
Go
package commands
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"git.sr.ht/~sircmpwn/aerc/widgets"
|
|
)
|
|
|
|
type Prompt struct{}
|
|
|
|
func init() {
|
|
register(Prompt{})
|
|
}
|
|
|
|
func (_ Prompt) Aliases() []string {
|
|
return []string{"prompt"}
|
|
}
|
|
|
|
func (_ Prompt) Complete(aerc *widgets.Aerc, args []string) []string {
|
|
return nil // TODO: add completions
|
|
}
|
|
|
|
func (_ Prompt) Execute(aerc *widgets.Aerc, args []string) error {
|
|
if len(args) < 3 {
|
|
return errors.New(fmt.Sprintf("Usage: %s <prompt> <cmd>", args[0]))
|
|
}
|
|
|
|
prompt := args[1]
|
|
cmd := args[2:]
|
|
aerc.RegisterPrompt(prompt, cmd)
|
|
return nil
|
|
}
|