From 71eda7d37c8ef38502c360b518fcbf5960497eea Mon Sep 17 00:00:00 2001 From: Parasrah Date: Thu, 6 Jan 2022 21:54:28 -0700 Subject: completions: add support for completing multiple addresses as per the discussion https://lists.sr.ht/~sircmpwn/aerc/patches/15367 this handles completions in `completer/completer.go` by enabling the completer to return a `prefix` that will be prepended to the selected completion candidate. --- widgets/aerc.go | 12 ++++++------ widgets/exline.go | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'widgets') diff --git a/widgets/aerc.go b/widgets/aerc.go index 3c52f7e..e644f82 100644 --- a/widgets/aerc.go +++ b/widgets/aerc.go @@ -448,8 +448,8 @@ func (aerc *Aerc) BeginExCommand(cmd string) { }, func() { aerc.statusbar.Pop() aerc.focus(previous) - }, func(cmd string) []string { - return aerc.complete(cmd) + }, func(cmd string) ([]string, string) { + return aerc.complete(cmd), "" }, aerc.cmdHistory) aerc.statusbar.Push(exline) aerc.focus(exline) @@ -464,8 +464,8 @@ func (aerc *Aerc) RegisterPrompt(prompt string, cmd []string) { if err != nil { aerc.PushError(err.Error()) } - }, func(cmd string) []string { - return nil // TODO: completions + }, func(cmd string) ([]string, string) { + return nil, "" // TODO: completions }) aerc.prompts.Push(p) } @@ -491,8 +491,8 @@ func (aerc *Aerc) RegisterChoices(choices []Choice) { if err != nil { aerc.PushError(err.Error()) } - }, func(cmd string) []string { - return nil // TODO: completions + }, func(cmd string) ([]string, string) { + return nil, "" // TODO: completions }) aerc.prompts.Push(p) } diff --git a/widgets/exline.go b/widgets/exline.go index dd9c928..0d245fb 100644 --- a/widgets/exline.go +++ b/widgets/exline.go @@ -12,14 +12,14 @@ type ExLine struct { ui.Invalidatable commit func(cmd string) finish func() - tabcomplete func(cmd string) []string + tabcomplete func(cmd string) ([]string, string) cmdHistory lib.History input *ui.TextInput conf *config.AercConfig } func NewExLine(conf *config.AercConfig, cmd string, commit func(cmd string), finish func(), - tabcomplete func(cmd string) []string, + tabcomplete func(cmd string) ([]string, string), cmdHistory lib.History) *ExLine { input := ui.NewTextInput("", conf.Ui).Prompt(":").Set(cmd) @@ -41,7 +41,7 @@ func NewExLine(conf *config.AercConfig, cmd string, commit func(cmd string), fin } func NewPrompt(conf *config.AercConfig, prompt string, commit func(text string), - tabcomplete func(cmd string) []string) *ExLine { + tabcomplete func(cmd string) ([]string, string)) *ExLine { input := ui.NewTextInput("", conf.Ui).Prompt(prompt) if conf.Ui.CompletionPopovers { -- cgit v1.2.3