Skip to content

Commit 912c16a

Browse files
committed
feat(session_picker): add new keymap in title legend
1 parent a34a8e1 commit 912c16a

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

lua/opencode/types.lua

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@
6767
---@field input_window OpencodeKeymapInputWindow
6868
---@field output_window OpencodeKeymapOutputWindow
6969
---@field permission OpencodeKeymapPermission
70+
---@field session_picker OpencodeSessionPickerKeymap
71+
72+
---@class OpencodeSessionPickerKeymap
73+
---@field delete_session OpencodeKeymapEntry
74+
---@field new_session OpencodeKeymapEntry
7075

7176
---@class OpencodeCompletionFileSourcesConfig
7277
---@field enabled boolean
@@ -96,7 +101,6 @@
96101
---@field input { text: { wrap: boolean } }
97102
---@field completion OpencodeCompletionConfig
98103

99-
100104
---@class OpencodeUIOutputConfig
101105
---@field tools { show_output: boolean }
102106
---@field rendering { markdown_debounce_ms: number, on_data_rendered: (fun(buf: integer, win: integer)|boolean)|nil }

lua/opencode/ui/session_picker.lua

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,22 @@ local M = {}
22
local picker = require('opencode.ui.picker')
33

44
local picker_title = function()
5-
local config = require('opencode.config')
6-
local delete_config = config.keymap.session_picker.delete_session
7-
local delete_key = delete_config and ' | ' .. delete_config[1] .. ' to delete' or ''
8-
return 'Select A Session' .. delete_key
5+
local config = require('opencode.config') --[[@as OpencodeConfig]]
6+
local keymap_config = config.keymap.session_picker
7+
8+
local legend = {}
9+
local actions = {
10+
{ key = keymap_config.delete_session, label = 'delete' },
11+
{ key = keymap_config.new_session, label = 'new' },
12+
}
13+
14+
for _, action in ipairs(actions) do
15+
if action.key and action.key[1] then
16+
table.insert(legend, action.key[1] .. ' ' .. action.label)
17+
end
18+
end
19+
20+
return 'Select A Session' .. (#legend > 0 and ' | ' .. table.concat(legend, ' | ') or '')
921
end
1022

1123
local function format_session(session)

0 commit comments

Comments
 (0)