diff options
Diffstat (limited to 'packages/tui/internal/commands/command.go')
| -rw-r--r-- | packages/tui/internal/commands/command.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/tui/internal/commands/command.go b/packages/tui/internal/commands/command.go index bd5d61b95..3a5287ca3 100644 --- a/packages/tui/internal/commands/command.go +++ b/packages/tui/internal/commands/command.go @@ -31,6 +31,7 @@ type Command struct { Description string Keybindings []Keybinding Trigger []string + Custom bool } func (c Command) Keys() []string { @@ -96,6 +97,7 @@ func (r CommandRegistry) Sorted() []Command { }) return commands } + func (r CommandRegistry) Matches(msg tea.KeyPressMsg, leader bool) []Command { var matched []Command for _, command := range r.Sorted() { @@ -182,7 +184,7 @@ func parseBindings(bindings ...string) []Keybinding { return parsedBindings } -func LoadFromConfig(config *opencode.Config) CommandRegistry { +func LoadFromConfig(config *opencode.Config, customCommands []opencode.Command) CommandRegistry { defaults := []Command{ { Name: AppHelpCommand, @@ -400,6 +402,16 @@ func LoadFromConfig(config *opencode.Config) CommandRegistry { } registry[command.Name] = command } + for _, command := range customCommands { + registry[CommandName(command.Name)] = Command{ + Name: CommandName(command.Name), + Description: command.Description, + Trigger: []string{command.Name}, + Keybindings: []Keybinding{}, + Custom: true, + } + } + slog.Info("Loaded commands", "commands", registry) return registry } |
