diff options
| author | adamdottv <[email protected]> | 2025-06-18 14:06:20 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-06-18 14:06:20 -0500 |
| commit | 1d0bfc2b2ac2bad3a646c6adf43aa112d47c3f07 (patch) | |
| tree | 4bde15459d6da76e9c8fad3a85a29503e115e116 /packages/tui/internal/commands | |
| parent | bd46cf0f868293b501874c1f04632ced3bec7b81 (diff) | |
| download | opencode-1d0bfc2b2ac2bad3a646c6adf43aa112d47c3f07.tar.gz opencode-1d0bfc2b2ac2bad3a646c6adf43aa112d47c3f07.zip | |
fix(tui): help dialog sorting
Diffstat (limited to 'packages/tui/internal/commands')
| -rw-r--r-- | packages/tui/internal/commands/command.go | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/packages/tui/internal/commands/command.go b/packages/tui/internal/commands/command.go index 92e11c79f..ad7ccf30c 100644 --- a/packages/tui/internal/commands/command.go +++ b/packages/tui/internal/commands/command.go @@ -41,14 +41,12 @@ func (c Command) Keys() []string { type CommandRegistry map[CommandName]Command -func (r CommandRegistry) Matches(msg tea.KeyPressMsg, leader bool) []Command { - var matched []Command +func (r CommandRegistry) Sorted() []Command { + var commands []Command for _, command := range r { - if command.Matches(msg, leader) { - matched = append(matched, command) - } + commands = append(commands, command) } - slices.SortFunc(matched, func(a, b Command) int { + slices.SortFunc(commands, func(a, b Command) int { if a.Name == AppExitCommand { return 1 } @@ -57,6 +55,16 @@ func (r CommandRegistry) Matches(msg tea.KeyPressMsg, leader bool) []Command { } return strings.Compare(string(a.Name), string(b.Name)) }) + return commands +} + +func (r CommandRegistry) Matches(msg tea.KeyPressMsg, leader bool) []Command { + var matched []Command + for _, command := range r.Sorted() { + if command.Matches(msg, leader) { + matched = append(matched, command) + } + } return matched } |
