105 lines
1.9 KiB
Go
105 lines
1.9 KiB
Go
package common
|
|
|
|
import (
|
|
"github.com/charmbracelet/bubbles/key"
|
|
)
|
|
|
|
// Keymap is a collection of key bindings.
|
|
type Keymap struct {
|
|
Quit key.Binding
|
|
Back key.Binding
|
|
Ok key.Binding
|
|
Input key.Binding
|
|
Add key.Binding
|
|
Edit key.Binding
|
|
Up key.Binding
|
|
Down key.Binding
|
|
Left key.Binding
|
|
Right key.Binding
|
|
SetReport key.Binding
|
|
SetContext key.Binding
|
|
SetProject key.Binding
|
|
Select key.Binding
|
|
Insert key.Binding
|
|
}
|
|
|
|
// NewKeymap creates a new Keymap.
|
|
func NewKeymap() *Keymap {
|
|
return &Keymap{
|
|
Quit: key.NewBinding(
|
|
key.WithKeys("q", "ctrl+c"),
|
|
key.WithHelp("q, ctrl+c", "Quit"),
|
|
),
|
|
|
|
Back: key.NewBinding(
|
|
key.WithKeys("esc"),
|
|
key.WithHelp("esc", "Back"),
|
|
),
|
|
|
|
Ok: key.NewBinding(
|
|
key.WithKeys("enter"),
|
|
key.WithHelp("enter", "Ok"),
|
|
),
|
|
|
|
Input: key.NewBinding(
|
|
key.WithKeys(":"),
|
|
key.WithHelp(":", "Input"),
|
|
),
|
|
|
|
Add: key.NewBinding(
|
|
key.WithKeys("a"),
|
|
key.WithHelp("a", "Add new task"),
|
|
),
|
|
|
|
Edit: key.NewBinding(
|
|
key.WithKeys("e"),
|
|
key.WithHelp("e", "Edit task"),
|
|
),
|
|
|
|
Up: key.NewBinding(
|
|
key.WithKeys("k", "up"),
|
|
key.WithHelp("↑/k", "Up"),
|
|
),
|
|
|
|
Down: key.NewBinding(
|
|
key.WithKeys("j", "down"),
|
|
key.WithHelp("↓/j", "Down"),
|
|
),
|
|
|
|
Left: key.NewBinding(
|
|
key.WithKeys("h", "left"),
|
|
key.WithHelp("←/h", "Left"),
|
|
),
|
|
|
|
Right: key.NewBinding(
|
|
key.WithKeys("l", "right"),
|
|
key.WithHelp("→/l", "Right"),
|
|
),
|
|
|
|
SetReport: key.NewBinding(
|
|
key.WithKeys("r"),
|
|
key.WithHelp("r", "Set report"),
|
|
),
|
|
|
|
SetContext: key.NewBinding(
|
|
key.WithKeys("c"),
|
|
key.WithHelp("c", "Set context"),
|
|
),
|
|
|
|
SetProject: key.NewBinding(
|
|
key.WithKeys("p"),
|
|
key.WithHelp("p", "Set project"),
|
|
),
|
|
|
|
Select: key.NewBinding(
|
|
key.WithKeys("enter"),
|
|
key.WithHelp("enter", "Select"),
|
|
),
|
|
|
|
Insert: key.NewBinding(
|
|
key.WithKeys("i"),
|
|
key.WithHelp("insert", "Insert mode"),
|
|
),
|
|
}
|
|
}
|