| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package sessions
- import (
- "github.com/charmbracelet/bubbles/v2/key"
- )
- type KeyMap struct {
- Select,
- Next,
- Previous,
- Close key.Binding
- }
- func DefaultKeyMap() KeyMap {
- return KeyMap{
- Select: key.NewBinding(
- key.WithKeys("enter", "tab"),
- key.WithHelp("enter", "confirm"),
- ),
- Next: key.NewBinding(
- key.WithKeys("down"),
- key.WithHelp("↓", "down"),
- ),
- Previous: key.NewBinding(
- key.WithKeys("up"),
- key.WithHelp("↑", "up"),
- ),
- Close: key.NewBinding(
- key.WithKeys("esc"),
- key.WithHelp("esc", "cancel"),
- ),
- }
- }
- // KeyBindings implements layout.KeyMapProvider
- func (k KeyMap) KeyBindings() []key.Binding {
- return []key.Binding{
- k.Select,
- k.Next,
- k.Previous,
- k.Close,
- }
- }
- // FullHelp implements help.KeyMap.
- func (k KeyMap) FullHelp() [][]key.Binding {
- m := [][]key.Binding{}
- slice := k.KeyBindings()
- for i := 0; i < len(slice); i += 4 {
- end := min(i+4, len(slice))
- m = append(m, slice[i:end])
- }
- return m
- }
- // ShortHelp implements help.KeyMap.
- func (k KeyMap) ShortHelp() []key.Binding {
- return []key.Binding{
- key.NewBinding(
- key.WithKeys("down", "up"),
- key.WithHelp("↑↓", "choose"),
- ),
- k.Select,
- k.Close,
- }
- }
|