keys.go 986 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package splash
  2. import (
  3. "github.com/charmbracelet/bubbles/v2/key"
  4. )
  5. type KeyMap struct {
  6. Select,
  7. Next,
  8. Previous,
  9. Yes,
  10. No,
  11. Tab,
  12. LeftRight,
  13. Back key.Binding
  14. }
  15. func DefaultKeyMap() KeyMap {
  16. return KeyMap{
  17. Select: key.NewBinding(
  18. key.WithKeys("enter", "ctrl+y"),
  19. key.WithHelp("enter", "confirm"),
  20. ),
  21. Next: key.NewBinding(
  22. key.WithKeys("down", "ctrl+n"),
  23. key.WithHelp("↓", "next item"),
  24. ),
  25. Previous: key.NewBinding(
  26. key.WithKeys("up", "ctrl+p"),
  27. key.WithHelp("↑", "previous item"),
  28. ),
  29. Yes: key.NewBinding(
  30. key.WithKeys("y", "Y"),
  31. key.WithHelp("y", "yes"),
  32. ),
  33. No: key.NewBinding(
  34. key.WithKeys("n", "N"),
  35. key.WithHelp("n", "no"),
  36. ),
  37. Tab: key.NewBinding(
  38. key.WithKeys("tab"),
  39. key.WithHelp("tab", "switch"),
  40. ),
  41. LeftRight: key.NewBinding(
  42. key.WithKeys("left", "right"),
  43. key.WithHelp("←/→", "switch"),
  44. ),
  45. Back: key.NewBinding(
  46. key.WithKeys("esc", "alt+esc"),
  47. key.WithHelp("esc", "back"),
  48. ),
  49. }
  50. }