fx/keymap.go

158 lines
4.0 KiB
Go
Raw Normal View History

2023-09-07 20:53:51 +00:00
package main
import "github.com/charmbracelet/bubbles/key"
type KeyMap struct {
Quit key.Binding
PageDown key.Binding
PageUp key.Binding
HalfPageUp key.Binding
HalfPageDown key.Binding
GotoTop key.Binding
GotoBottom key.Binding
Down key.Binding
Up key.Binding
2024-03-10 13:23:07 +00:00
Help key.Binding
2023-09-07 20:53:51 +00:00
Expand key.Binding
Collapse key.Binding
ExpandRecursively key.Binding
CollapseRecursively key.Binding
ExpandAll key.Binding
CollapseAll key.Binding
2024-03-10 19:48:46 +00:00
CollapseLevel key.Binding
2023-09-07 20:53:51 +00:00
NextSibling key.Binding
PrevSibling key.Binding
ToggleWrap key.Binding
2023-09-15 08:39:10 +00:00
Yank key.Binding
2023-09-07 20:53:51 +00:00
Search key.Binding
2023-09-14 15:25:27 +00:00
SearchNext key.Binding
SearchPrev key.Binding
2024-03-10 20:09:10 +00:00
Preview key.Binding
2024-03-10 20:56:08 +00:00
Print key.Binding
2023-09-12 11:06:48 +00:00
Dig key.Binding
2023-09-07 20:53:51 +00:00
}
var keyMap KeyMap
func init() {
keyMap = KeyMap{
Quit: key.NewBinding(
key.WithKeys("q", "ctrl+c", "esc"),
key.WithHelp("", "exit program"),
),
PageDown: key.NewBinding(
key.WithKeys("pgdown", " ", "f"),
key.WithHelp("pgdown, space, f", "page down"),
),
PageUp: key.NewBinding(
key.WithKeys("pgup", "b"),
key.WithHelp("pgup, b", "page up"),
),
HalfPageUp: key.NewBinding(
key.WithKeys("u", "ctrl+u"),
key.WithHelp("", "half page up"),
),
HalfPageDown: key.NewBinding(
key.WithKeys("d", "ctrl+d"),
key.WithHelp("", "half page down"),
),
GotoTop: key.NewBinding(
2023-09-22 12:22:51 +00:00
key.WithKeys("g", "home"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "goto top"),
),
GotoBottom: key.NewBinding(
2023-09-22 12:22:51 +00:00
key.WithKeys("G", "end"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "goto bottom"),
),
Down: key.NewBinding(
key.WithKeys("down", "j"),
key.WithHelp("", "down"),
),
Up: key.NewBinding(
key.WithKeys("up", "k"),
key.WithHelp("", "up"),
),
2024-03-10 13:23:07 +00:00
Help: key.NewBinding(
key.WithKeys("?"),
key.WithHelp("", "show help"),
),
2023-09-07 20:53:51 +00:00
Expand: key.NewBinding(
2023-09-10 13:57:12 +00:00
key.WithKeys("right", "l", "enter"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "expand"),
),
Collapse: key.NewBinding(
2023-09-10 13:57:12 +00:00
key.WithKeys("left", "h", "backspace"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "collapse"),
),
ExpandRecursively: key.NewBinding(
2023-09-11 15:50:38 +00:00
key.WithKeys("L", "shift+right"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "expand recursively"),
),
CollapseRecursively: key.NewBinding(
2023-09-11 15:50:38 +00:00
key.WithKeys("H", "shift+left"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "collapse recursively"),
),
ExpandAll: key.NewBinding(
key.WithKeys("e"),
key.WithHelp("", "expand all"),
),
CollapseAll: key.NewBinding(
key.WithKeys("E"),
key.WithHelp("", "collapse all"),
),
2024-03-10 19:48:46 +00:00
CollapseLevel: key.NewBinding(
key.WithKeys("1", "2", "3", "4", "5", "6", "7", "8", "9"),
key.WithHelp("", "collapse to nth level"),
),
2023-09-07 20:53:51 +00:00
NextSibling: key.NewBinding(
2023-09-08 22:14:46 +00:00
key.WithKeys("J", "shift+down"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "next sibling"),
),
PrevSibling: key.NewBinding(
2023-09-08 22:14:46 +00:00
key.WithKeys("K", "shift+up"),
2023-09-07 20:53:51 +00:00
key.WithHelp("", "previous sibling"),
),
ToggleWrap: key.NewBinding(
key.WithKeys("z"),
key.WithHelp("", "toggle strings wrap"),
),
2023-09-15 08:39:10 +00:00
Yank: key.NewBinding(
key.WithKeys("y"),
key.WithHelp("", "yank/copy"),
),
2023-09-07 20:53:51 +00:00
Search: key.NewBinding(
key.WithKeys("/"),
key.WithHelp("", "search regexp"),
),
2023-09-14 15:25:27 +00:00
SearchNext: key.NewBinding(
2023-09-07 20:53:51 +00:00
key.WithKeys("n"),
key.WithHelp("", "next search result"),
),
2023-09-14 15:25:27 +00:00
SearchPrev: key.NewBinding(
2023-09-07 20:53:51 +00:00
key.WithKeys("N"),
key.WithHelp("", "prev search result"),
),
2024-03-10 20:09:10 +00:00
Preview: key.NewBinding(
key.WithKeys("p"),
2024-03-10 20:56:08 +00:00
key.WithHelp("", "preview"),
),
Print: key.NewBinding(
key.WithKeys("P"),
key.WithHelp("", "print"),
2024-03-10 20:09:10 +00:00
),
2023-09-12 11:06:48 +00:00
Dig: key.NewBinding(
key.WithKeys("."),
2024-03-10 20:56:08 +00:00
key.WithHelp("", "dig"),
2023-09-12 11:06:48 +00:00
),
2023-09-07 20:53:51 +00:00
}
}
2023-09-15 19:55:21 +00:00
var (
2024-03-15 04:23:07 +00:00
yankValueY = key.NewBinding(key.WithKeys("y"))
yankValueV = key.NewBinding(key.WithKeys("v"))
yankKey = key.NewBinding(key.WithKeys("k"))
yankPath = key.NewBinding(key.WithKeys("p"))
arrowUp = key.NewBinding(key.WithKeys("up"))
arrowDown = key.NewBinding(key.WithKeys("down"))
2023-09-15 19:55:21 +00:00
)