on main help sign in
feat: paste/close bindings in user cmd dialog (#1221)
8c9ce8eAmolith
internal/tui/components/dialogs/commands/arguments.go+8−1
@@ -128,12 +128,19 @@ func (c *commandArgumentsDialogCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
128 c.inputs[c.focusIndex].Blur()
128 c.inputs[c.focusIndex].Blur()
129 c.focusIndex = (c.focusIndex - 1 + len(c.inputs)) % len(c.inputs)
129 c.focusIndex = (c.focusIndex - 1 + len(c.inputs)) % len(c.inputs)
130 c.inputs[c.focusIndex].Focus()
130 c.inputs[c.focusIndex].Focus()
131−
131+ case key.Matches(msg, c.keys.Paste):
132+ return c, textinput.Paste
133+ case key.Matches(msg, c.keys.Close):
134+ return c, util.CmdHandler(dialogs.CloseDialogMsg{})
132 default:
135 default:
133 var cmd tea.Cmd
136 var cmd tea.Cmd
134 c.inputs[c.focusIndex], cmd = c.inputs[c.focusIndex].Update(msg)
137 c.inputs[c.focusIndex], cmd = c.inputs[c.focusIndex].Update(msg)
135 return c, cmd
138 return c, cmd
136 }
139 }
140+ case tea.PasteMsg:
141+ var cmd tea.Cmd
142+ c.inputs[c.focusIndex], cmd = c.inputs[c.focusIndex].Update(msg)
143+ return c, cmd
137 }
144 }
138 return c, nil
145 return c, nil
139}
146}
internal/tui/components/dialogs/commands/keys.go+14
@@ -76,6 +76,8 @@ type ArgumentsDialogKeyMap struct {
76 Confirm key.Binding
76 Confirm key.Binding
77 Next key.Binding
77 Next key.Binding
78 Previous key.Binding
78 Previous key.Binding
79+ Paste key.Binding
80+ Close key.Binding
79}
81}
80
82
81func DefaultArgumentsDialogKeyMap() ArgumentsDialogKeyMap {
83func DefaultArgumentsDialogKeyMap() ArgumentsDialogKeyMap {
@@ -93,6 +95,14 @@ func DefaultArgumentsDialogKeyMap() ArgumentsDialogKeyMap {
93 key.WithKeys("shift+tab", "up"),
95 key.WithKeys("shift+tab", "up"),
94 key.WithHelp("shift+tab/↑", "previous"),
96 key.WithHelp("shift+tab/↑", "previous"),
95 ),
97 ),
98+ Paste: key.NewBinding(
99+ key.WithKeys("ctrl+v"),
100+ key.WithHelp("ctrl+v", "paste"),
101+ ),
102+ Close: key.NewBinding(
103+ key.WithKeys("esc", "alt+esc"),
104+ key.WithHelp("esc", "cancel"),
105+ ),
96 }
106 }
97}
107}
98
108
@@ -102,6 +112,8 @@ func (k ArgumentsDialogKeyMap) KeyBindings() []key.Binding {
102 k.Confirm,
112 k.Confirm,
103 k.Next,
113 k.Next,
104 k.Previous,
114 k.Previous,
115+ k.Paste,
116+ k.Close,
105 }
117 }
106}
118}
107
119
@@ -122,5 +134,7 @@ func (k ArgumentsDialogKeyMap) ShortHelp() []key.Binding {
122 k.Confirm,
134 k.Confirm,
123 k.Next,
135 k.Next,
124 k.Previous,
136 k.Previous,
137+ k.Paste,
138+ k.Close,
125 }
139 }
126}
140}