From 71692aeb2426543455044d8c3b7565caf173906e Mon Sep 17 00:00:00 2001 From: Keenan Gugeler Date: Fri, 18 Aug 2023 19:04:59 +0000 Subject: review: sort unknown review commands Currently, the unknown commands in the review window appear in an undefined order, since `go-ini` gives us a `map`. Instead, we should sort them by inputs, otherwise the ordering can get confusing between restarts of aerc. Signed-off-by: Keenan Gugeler Acked-by: Robin Jarry --- widgets/compose.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'widgets') diff --git a/widgets/compose.go b/widgets/compose.go index 0aac8705..89697097 100644 --- a/widgets/compose.go +++ b/widgets/compose.go @@ -8,6 +8,7 @@ import ( "net/textproto" "os" "os/exec" + "sort" "strconv" "strings" "sync" @@ -1604,6 +1605,7 @@ func newReviewMessage(composer *Composer, err error) *reviewMessage { {":abort", "Abort (discard message, no confirmation)", ""}, {":choose -o d discard abort -o p postpone postpone", "Abort or postpone", ""}, } + knownCommands := len(reviewCommands) var actions []string for _, binding := range bindings.Bindings { inputs := config.FormatKeyStrokes(binding.Input) @@ -1626,6 +1628,11 @@ func newReviewMessage(composer *Composer, err error) *reviewMessage { reviewCommands = append(reviewCommands, rcmd) } } + unknownCommands := reviewCommands[knownCommands:] + sort.Slice(unknownCommands, func(i, j int) bool { + return unknownCommands[i][2] < unknownCommands[j][2] + }) + longest := 0 for _, rcmd := range reviewCommands { if len(rcmd[2]) > longest { -- cgit