Documentation
¶
Index ¶
- type ContextCondition
- type HelpShortcut
- type KeyAction
- type KeyBindingManager
- type KeyContext
- type KeyHandler
- type KeyHandlerContext
- type KeyLayer
- type KeyRegistry
- type LayerMatcher
- type Registry
- func (r *Registry) AddLayer(layer *KeyLayer)
- func (r *Registry) GetAction(id string) *KeyAction
- func (r *Registry) GetActiveActions(app KeyHandlerContext) []*KeyAction
- func (r *Registry) GetHelpShortcuts(app KeyHandlerContext) []HelpShortcut
- func (r *Registry) GetLayers() []*KeyLayer
- func (r *Registry) Register(action *KeyAction) error
- func (r *Registry) Resolve(key string, app KeyHandlerContext) *KeyAction
- func (r *Registry) Unregister(id string) error
- type Theme
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ContextCondition ¶
type ContextCondition struct { Name string Check func(app KeyHandlerContext) bool }
ContextCondition represents a condition that must be met for key binding to be active
type HelpShortcut ¶
HelpShortcut represents a key shortcut for help display
type KeyAction ¶
type KeyAction struct { ID string Keys []string Description string Category string Handler KeyHandler Context KeyContext Priority int Enabled bool }
KeyAction represents a key binding action with metadata
type KeyBindingManager ¶
type KeyBindingManager struct {
// contains filtered or unexported fields
}
KeyBindingManager manages the key binding system for ChatApplication
func NewKeyBindingManager ¶
func NewKeyBindingManager(app KeyHandlerContext) *KeyBindingManager
NewKeyBindingManager creates a new key binding manager
func (*KeyBindingManager) GetHelpShortcuts ¶
func (m *KeyBindingManager) GetHelpShortcuts() []HelpShortcut
GetHelpShortcuts returns help shortcuts for the current context
func (*KeyBindingManager) GetRegistry ¶
func (m *KeyBindingManager) GetRegistry() KeyRegistry
GetRegistry returns the underlying registry (for advanced usage)
func (*KeyBindingManager) ProcessKey ¶
func (m *KeyBindingManager) ProcessKey(keyMsg tea.KeyMsg) tea.Cmd
ProcessKey handles key input and executes the appropriate action
func (*KeyBindingManager) RegisterCustomAction ¶
func (m *KeyBindingManager) RegisterCustomAction(action *KeyAction) error
RegisterCustomAction registers a new custom key action
type KeyContext ¶
type KeyContext struct { Views []domain.ViewState Conditions []ContextCondition ExcludeViews []domain.ViewState }
KeyContext defines when and where a key binding is active
type KeyHandler ¶
type KeyHandler func(app KeyHandlerContext, keyMsg tea.KeyMsg) tea.Cmd
KeyHandler represents a function that handles a key binding
type KeyHandlerContext ¶
type KeyHandlerContext interface { // State management GetStateManager() *services.StateManager GetConversationRepository() domain.ConversationRepository GetConfig() *config.Config // UI components GetConversationView() ui.ConversationRenderer GetInputView() ui.InputComponent GetStatusView() ui.StatusComponent // Actions ToggleToolResultExpansion() SendMessage() tea.Cmd HasPendingApproval() bool GetPageSize() int ApproveToolCall() tea.Cmd DenyToolCall() tea.Cmd }
KeyHandlerContext provides access to application context for key handlers
type KeyLayer ¶
type KeyLayer struct { Name string Priority int Bindings map[string]*KeyAction Matcher LayerMatcher }
KeyLayer represents a layer of key bindings with specific priority
type KeyRegistry ¶
type KeyRegistry interface { Register(action *KeyAction) error Unregister(id string) error Resolve(key string, app KeyHandlerContext) *KeyAction GetAction(id string) *KeyAction GetActiveActions(app KeyHandlerContext) []*KeyAction GetHelpShortcuts(app KeyHandlerContext) []HelpShortcut AddLayer(layer *KeyLayer) GetLayers() []*KeyLayer }
KeyRegistry manages all key bindings and their resolution
type LayerMatcher ¶
type LayerMatcher func(app KeyHandlerContext) bool
LayerMatcher determines if a layer is currently active
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry implements the KeyRegistry interface
func (*Registry) GetActiveActions ¶
func (r *Registry) GetActiveActions(app KeyHandlerContext) []*KeyAction
GetActiveActions returns all currently active actions
func (*Registry) GetHelpShortcuts ¶
func (r *Registry) GetHelpShortcuts(app KeyHandlerContext) []HelpShortcut
GetHelpShortcuts generates help shortcuts for current context
func (*Registry) Resolve ¶
func (r *Registry) Resolve(key string, app KeyHandlerContext) *KeyAction
Resolve finds the appropriate key action for a key press
func (*Registry) Unregister ¶
Unregister removes a key binding action from the registry