27 lines
754 B
Go
27 lines
754 B
Go
package tui
|
|
|
|
import tea "charm.land/bubbletea/v2"
|
|
|
|
// keyMsg builds a v2 key-press message from a canonical key string for tests
|
|
// (e.g. "enter", "esc", "ctrl+s", " ", "C").
|
|
func keyMsg(s string) tea.KeyPressMsg {
|
|
switch s {
|
|
case "enter":
|
|
return tea.KeyPressMsg{Code: tea.KeyEnter}
|
|
case "esc":
|
|
return tea.KeyPressMsg{Code: tea.KeyEsc}
|
|
case "tab":
|
|
return tea.KeyPressMsg{Code: tea.KeyTab}
|
|
case "shift+tab":
|
|
return tea.KeyPressMsg{Code: tea.KeyTab, Mod: tea.ModShift}
|
|
case "ctrl+s":
|
|
return tea.KeyPressMsg{Code: 's', Mod: tea.ModCtrl}
|
|
case "ctrl+l":
|
|
return tea.KeyPressMsg{Code: 'l', Mod: tea.ModCtrl}
|
|
case " ", "space":
|
|
return tea.KeyPressMsg{Code: tea.KeySpace}
|
|
default:
|
|
return tea.KeyPressMsg{Code: []rune(s)[0], Text: s}
|
|
}
|
|
}
|