Skip to content

Commit dd5c16c

Browse files
dekaravanhocsudo-tee
authored andcommitted
chore(keymap): add explicit descriptions for default mappings
1 parent 7f959f4 commit dd5c16c

2 files changed

Lines changed: 74 additions & 44 deletions

File tree

lua/opencode/config.lua

Lines changed: 59 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -61,63 +61,83 @@ M.defaults = {
6161
['<leader>o/'] = { 'quick_chat', desc = 'Quick chat with current context', mode = { 'n', 'x' } },
6262
},
6363
output_window = {
64-
['<esc>'] = { 'close' },
65-
['<C-c>'] = { 'cancel' },
66-
[']]'] = { 'next_message' },
67-
['[['] = { 'prev_message' },
68-
['<tab>'] = { 'toggle_pane', mode = { 'n' } },
69-
['i'] = { 'focus_input' },
64+
['<esc>'] = { 'close', desc = 'Close Opencode windows' },
65+
['<C-c>'] = { 'cancel', desc = 'Cancel running request' },
66+
[']]'] = { 'next_message', desc = 'Go to next message' },
67+
['[['] = { 'prev_message', desc = 'Go to previous message' },
68+
['<tab>'] = {
69+
'toggle_pane',
70+
mode = { 'n' },
71+
desc = 'Toggle input/output panes',
72+
},
73+
['i'] = { 'focus_input', desc = 'Focus input window' },
7074
['gr'] = { 'references', desc = 'Browse code references' },
7175
['<M-i>'] = { 'toggle_input', mode = { 'n' }, desc = 'Toggle input window' },
72-
['<M-r>'] = { 'cycle_variant', mode = { 'n' } },
73-
['<leader>oS'] = { 'select_child_session' },
74-
['<leader>oD'] = { 'debug_message' },
75-
['<leader>oO'] = { 'debug_output' },
76-
['<leader>ods'] = { 'debug_session' },
76+
['<M-r>'] = { 'cycle_variant', mode = { 'n' }, desc = 'Cycle model variants' },
77+
['<leader>oS'] = { 'select_child_session', desc = 'Select child session' },
78+
['<leader>oD'] = { 'debug_message', desc = 'Open raw message debug view' },
79+
['<leader>oO'] = { 'debug_output', desc = 'Open raw output debug view' },
80+
['<leader>ods'] = { 'debug_session', desc = 'Open raw session debug view' },
7781
},
7882
input_window = {
79-
['<cr>'] = { 'submit_input_prompt', mode = { 'n' } },
80-
['<S-cr>'] = { 'submit_input_prompt', mode = { 'n', 'i' } },
81-
['<esc>'] = { 'close' },
82-
['<C-c>'] = { 'cancel' },
83-
['~'] = { 'mention_file', mode = 'i' },
84-
['@'] = { 'mention', mode = 'i' },
85-
['/'] = { 'slash_commands', mode = 'i' },
86-
['#'] = { 'context_items', mode = 'i' },
87-
['<M-v>'] = { 'paste_image', mode = 'i' },
88-
['<tab>'] = { 'toggle_pane', mode = { 'n' } },
89-
['<up>'] = { 'prev_prompt_history', mode = { 'n', 'i' } },
90-
['<down>'] = { 'next_prompt_history', mode = { 'n', 'i' } },
91-
['<M-m>'] = { 'switch_mode', mode = { 'n', 'i' } },
92-
['<M-r>'] = { 'cycle_variant', mode = { 'n', 'i' } },
83+
['<cr>'] = { 'submit_input_prompt', mode = { 'n' }, desc = 'Submit prompt' },
84+
['<S-cr>'] = { 'submit_input_prompt', mode = { 'n', 'i' }, desc = 'Submit prompt' },
85+
['<esc>'] = { 'close', desc = 'Close Opencode windows' },
86+
['<C-c>'] = { 'cancel', desc = 'Cancel running request' },
87+
['~'] = { 'mention_file', mode = 'i', desc = 'Mention file in context' },
88+
['@'] = { 'mention', mode = 'i', desc = 'Open mention picker' },
89+
['/'] = { 'slash_commands', mode = 'i', desc = 'Open slash commands picker' },
90+
['#'] = { 'context_items', mode = 'i', desc = 'Open context items picker' },
91+
['<M-v>'] = { 'paste_image', mode = 'i', desc = 'Paste image from clipboard' },
92+
['<tab>'] = { 'toggle_pane', mode = { 'n' }, desc = 'Toggle input/output panes' },
93+
['<up>'] = {
94+
'prev_prompt_history',
95+
mode = { 'n', 'i' },
96+
desc = 'Previous prompt history item',
97+
},
98+
['<down>'] = {
99+
'next_prompt_history',
100+
mode = { 'n', 'i' },
101+
desc = 'Next prompt history item',
102+
},
103+
['<M-m>'] = { 'switch_mode', mode = { 'n', 'i' }, desc = 'Switch agent mode' },
104+
['<M-r>'] = { 'cycle_variant', mode = { 'n', 'i' }, desc = 'Cycle model variants' },
93105
['<M-i>'] = { 'toggle_input', mode = { 'n', 'i' }, desc = 'Toggle input window' },
94106
['gr'] = { 'references', desc = 'Browse code references' },
95-
['<leader>oS'] = { 'select_child_session' },
96-
['<leader>oD'] = { 'debug_message' },
97-
['<leader>oO'] = { 'debug_output' },
98-
['<leader>ods'] = { 'debug_session' },
107+
['<leader>oS'] = { 'select_child_session', desc = 'Select child session' },
108+
['<leader>oD'] = { 'debug_message', desc = 'Open raw message debug view' },
109+
['<leader>oO'] = { 'debug_output', desc = 'Open raw output debug view' },
110+
['<leader>ods'] = { 'debug_session', desc = 'Open raw session debug view' },
99111
},
100112
session_picker = {
101-
rename_session = { '<C-r>' },
102-
delete_session = { '<C-d>' },
103-
new_session = { '<C-s>' },
113+
rename_session = { '<C-r>', desc = 'Rename selected session' },
114+
delete_session = { '<C-d>', desc = 'Delete selected sessions' },
115+
new_session = { '<C-s>', desc = 'Create a new session' },
104116
},
105117
timeline_picker = {
106-
undo = { '<C-u>', mode = { 'i', 'n' } },
107-
fork = { '<C-f>', mode = { 'i', 'n' } },
118+
undo = { '<C-u>', mode = { 'i', 'n' }, desc = 'Undo to selected message' },
119+
fork = { '<C-f>', mode = { 'i', 'n' }, desc = 'Fork from selected message' },
108120
},
109121
history_picker = {
110-
delete_entry = { '<C-d>', mode = { 'i', 'n' } },
111-
clear_all = { '<C-X>', mode = { 'i', 'n' } },
122+
delete_entry = {
123+
'<C-d>',
124+
mode = { 'i', 'n' },
125+
desc = 'Delete selected history entries',
126+
},
127+
clear_all = { '<C-X>', mode = { 'i', 'n' }, desc = 'Clear all history entries' },
112128
},
113129
model_picker = {
114-
toggle_favorite = { '<C-f>', mode = { 'i', 'n' } },
130+
toggle_favorite = { '<C-f>', mode = { 'i', 'n' }, desc = 'Toggle model favorite' },
115131
},
116132
mcp_picker = {
117-
toggle_connection = { '<C-t>', mode = { 'i', 'n' } },
133+
toggle_connection = {
134+
'<C-t>',
135+
mode = { 'i', 'n' },
136+
desc = 'Toggle MCP server connection',
137+
},
118138
},
119139
quick_chat = {
120-
cancel = { '<C-c>', mode = { 'i', 'n' } },
140+
cancel = { '<C-c>', mode = { 'i', 'n' }, desc = 'Cancel active quick chat requests' },
121141
},
122142
},
123143
ui = {

lua/opencode/ui/dialog.lua

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,9 @@ function Dialog:_setup_keymaps()
311311
if key and key ~= '' then
312312
vim.keymap.set('n', key, function()
313313
self:navigate(-1)
314-
end, keymap_opts)
314+
end, vim.tbl_extend('force', keymap_opts, {
315+
desc = 'Dialog: navigate up',
316+
}))
315317
table.insert(self._keymaps, key)
316318
end
317319
end
@@ -322,7 +324,9 @@ function Dialog:_setup_keymaps()
322324
if key and key ~= '' then
323325
vim.keymap.set('n', key, function()
324326
self:navigate(1)
325-
end, keymap_opts)
327+
end, vim.tbl_extend('force', keymap_opts, {
328+
desc = 'Dialog: navigate down',
329+
}))
326330
table.insert(self._keymaps, key)
327331
end
328332
end
@@ -331,14 +335,18 @@ function Dialog:_setup_keymaps()
331335
if keymaps.select and keymaps.select ~= '' then
332336
vim.keymap.set('n', keymaps.select, function()
333337
self:select()
334-
end, keymap_opts)
338+
end, vim.tbl_extend('force', keymap_opts, {
339+
desc = 'Dialog: select option',
340+
}))
335341
table.insert(self._keymaps, keymaps.select)
336342
end
337343

338344
if keymaps.dismiss and keymaps.dismiss ~= '' then
339345
vim.keymap.set('n', keymaps.dismiss, function()
340346
self:dismiss()
341-
end, keymap_opts)
347+
end, vim.tbl_extend('force', keymap_opts, {
348+
desc = 'Dialog: dismiss',
349+
}))
342350
table.insert(self._keymaps, keymaps.dismiss)
343351
end
344352

@@ -353,7 +361,9 @@ function Dialog:_setup_keymaps()
353361
end
354362
self._selected_index = i
355363
self._config.on_select(i)
356-
end, number_keymap_opts)
364+
end, vim.tbl_extend('force', number_keymap_opts, {
365+
desc = 'Dialog: select option ' .. key,
366+
}))
357367
table.insert(self._keymaps, key)
358368
end
359369
end

0 commit comments

Comments
 (0)