diff options
| author | Yihui Khuu <[email protected]> | 2025-08-15 21:20:07 +1000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-15 06:20:07 -0500 |
| commit | 92d4366a20b4499b8e4817df442d67d021949feb (patch) | |
| tree | 955d36b9911eb34ebc2deec1d5135cf56b25d2b4 /packages/tui/internal/commands | |
| parent | 17a7c824b848240c777469ff670a1189445ba5bd (diff) | |
| download | opencode-92d4366a20b4499b8e4817df442d67d021949feb.tar.gz opencode-92d4366a20b4499b8e4817df442d67d021949feb.zip | |
feat(tui): support cycling recent models in reverse (#1953)
Diffstat (limited to 'packages/tui/internal/commands')
| -rw-r--r-- | packages/tui/internal/commands/command.go | 86 |
1 files changed, 46 insertions, 40 deletions
diff --git a/packages/tui/internal/commands/command.go b/packages/tui/internal/commands/command.go index fff547543..ebb468d2c 100644 --- a/packages/tui/internal/commands/command.go +++ b/packages/tui/internal/commands/command.go @@ -107,45 +107,46 @@ func (r CommandRegistry) Matches(msg tea.KeyPressMsg, leader bool) []Command { } const ( - AppHelpCommand CommandName = "app_help" - SwitchAgentCommand CommandName = "switch_agent" - SwitchAgentReverseCommand CommandName = "switch_agent_reverse" - EditorOpenCommand CommandName = "editor_open" - SessionNewCommand CommandName = "session_new" - SessionListCommand CommandName = "session_list" - SessionShareCommand CommandName = "session_share" - SessionUnshareCommand CommandName = "session_unshare" - SessionInterruptCommand CommandName = "session_interrupt" - SessionCompactCommand CommandName = "session_compact" - SessionExportCommand CommandName = "session_export" - ToolDetailsCommand CommandName = "tool_details" - ThinkingBlocksCommand CommandName = "thinking_blocks" - ModelListCommand CommandName = "model_list" - AgentListCommand CommandName = "agent_list" - ModelCycleRecentCommand CommandName = "model_cycle_recent" - ThemeListCommand CommandName = "theme_list" - FileListCommand CommandName = "file_list" - FileCloseCommand CommandName = "file_close" - FileSearchCommand CommandName = "file_search" - FileDiffToggleCommand CommandName = "file_diff_toggle" - ProjectInitCommand CommandName = "project_init" - InputClearCommand CommandName = "input_clear" - InputPasteCommand CommandName = "input_paste" - InputSubmitCommand CommandName = "input_submit" - InputNewlineCommand CommandName = "input_newline" - MessagesPageUpCommand CommandName = "messages_page_up" - MessagesPageDownCommand CommandName = "messages_page_down" - MessagesHalfPageUpCommand CommandName = "messages_half_page_up" - MessagesHalfPageDownCommand CommandName = "messages_half_page_down" - MessagesPreviousCommand CommandName = "messages_previous" - MessagesNextCommand CommandName = "messages_next" - MessagesFirstCommand CommandName = "messages_first" - MessagesLastCommand CommandName = "messages_last" - MessagesLayoutToggleCommand CommandName = "messages_layout_toggle" - MessagesCopyCommand CommandName = "messages_copy" - MessagesUndoCommand CommandName = "messages_undo" - MessagesRedoCommand CommandName = "messages_redo" - AppExitCommand CommandName = "app_exit" + AppHelpCommand CommandName = "app_help" + SwitchAgentCommand CommandName = "switch_agent" + SwitchAgentReverseCommand CommandName = "switch_agent_reverse" + EditorOpenCommand CommandName = "editor_open" + SessionNewCommand CommandName = "session_new" + SessionListCommand CommandName = "session_list" + SessionShareCommand CommandName = "session_share" + SessionUnshareCommand CommandName = "session_unshare" + SessionInterruptCommand CommandName = "session_interrupt" + SessionCompactCommand CommandName = "session_compact" + SessionExportCommand CommandName = "session_export" + ToolDetailsCommand CommandName = "tool_details" + ThinkingBlocksCommand CommandName = "thinking_blocks" + ModelListCommand CommandName = "model_list" + AgentListCommand CommandName = "agent_list" + ModelCycleRecentCommand CommandName = "model_cycle_recent" + ModelCycleRecentReverseCommand CommandName = "model_cycle_recent_reverse" + ThemeListCommand CommandName = "theme_list" + FileListCommand CommandName = "file_list" + FileCloseCommand CommandName = "file_close" + FileSearchCommand CommandName = "file_search" + FileDiffToggleCommand CommandName = "file_diff_toggle" + ProjectInitCommand CommandName = "project_init" + InputClearCommand CommandName = "input_clear" + InputPasteCommand CommandName = "input_paste" + InputSubmitCommand CommandName = "input_submit" + InputNewlineCommand CommandName = "input_newline" + MessagesPageUpCommand CommandName = "messages_page_up" + MessagesPageDownCommand CommandName = "messages_page_down" + MessagesHalfPageUpCommand CommandName = "messages_half_page_up" + MessagesHalfPageDownCommand CommandName = "messages_half_page_down" + MessagesPreviousCommand CommandName = "messages_previous" + MessagesNextCommand CommandName = "messages_next" + MessagesFirstCommand CommandName = "messages_first" + MessagesLastCommand CommandName = "messages_last" + MessagesLayoutToggleCommand CommandName = "messages_layout_toggle" + MessagesCopyCommand CommandName = "messages_copy" + MessagesUndoCommand CommandName = "messages_undo" + MessagesRedoCommand CommandName = "messages_redo" + AppExitCommand CommandName = "app_exit" ) func (k Command) Matches(msg tea.KeyPressMsg, leader bool) bool { @@ -266,10 +267,15 @@ func LoadFromConfig(config *opencode.Config) CommandRegistry { }, { Name: ModelCycleRecentCommand, - Description: "cycle recent models", + Description: "next recent model", Keybindings: parseBindings("f2"), }, { + Name: ModelCycleRecentReverseCommand, + Description: "previous recent model", + Keybindings: parseBindings("shift+f2"), + }, + { Name: ThemeListCommand, Description: "list themes", Keybindings: parseBindings("<leader>t"), |
