Add :prompt command
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.
This commit is contained in:
parent
ea4fe71360
commit
ecd803aae4
4 changed files with 108 additions and 6 deletions
commands
33
commands/prompt.go
Normal file
33
commands/prompt.go
Normal file
|
@ -0,0 +1,33 @@
|
|||
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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue