keybinds.go 937 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package root
  2. import (
  3. "github.com/ayn2op/tview/help"
  4. "github.com/ayn2op/tview/keybind"
  5. )
  6. var _ help.KeyMap = (*Model)(nil)
  7. func (m *Model) ShortHelp() []keybind.Keybind {
  8. global := []keybind.Keybind{
  9. m.cfg.Keybinds.ToggleHelp.Keybind,
  10. m.cfg.Keybinds.Suspend.Keybind,
  11. m.cfg.Keybinds.Quit.Keybind,
  12. }
  13. if active := m.activeKeyMap(); active != nil {
  14. short := active.ShortHelp()
  15. return append(short, global...)
  16. }
  17. return global
  18. }
  19. func (m *Model) FullHelp() [][]keybind.Keybind {
  20. global := []keybind.Keybind{
  21. m.cfg.Keybinds.ToggleHelp.Keybind,
  22. m.cfg.Keybinds.EditConfig.Keybind,
  23. m.cfg.Keybinds.Suspend.Keybind,
  24. m.cfg.Keybinds.Quit.Keybind,
  25. }
  26. if active := m.activeKeyMap(); active != nil {
  27. full := active.FullHelp()
  28. return append(full, global)
  29. }
  30. return [][]keybind.Keybind{global}
  31. }
  32. func (m *Model) activeKeyMap() help.KeyMap {
  33. if keyMap, ok := m.inner.(help.KeyMap); ok {
  34. return keyMap
  35. }
  36. return nil
  37. }