Skip to content

Commit

Permalink
pre_assign_chars and process_unknown_chars
Browse files Browse the repository at this point in the history
  • Loading branch information
IndianBoy42 committed Jun 4, 2023
1 parent 9f83bce commit f83698f
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
18 changes: 16 additions & 2 deletions lua/window-picker/hints/floating-big-letter-hint.lua
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ end
function M:set_config(config)
self.chars = config.chars
self.create_chars = config.create_chars
self.pre_assign_chars = config.pre_assign_chars
local font = config.picker_config.floating_big_letter.font

if type(font) == 'string' then
Expand Down Expand Up @@ -138,9 +139,20 @@ function M:_show_letter_in_window(window, char, position)
end

function M:draw(windows, or_create)
for index, window in ipairs(windows) do
local windowlist = {}
for _, win in ipairs(windows) do
windowlist[win] = false
end
if self.pre_assign_chars then
windowlist = self.pre_assign_chars(windowlist)
end

local index = 1
for window, char in pairs(windowlist) do
do
local char = self.chars[index]
char = char or self.chars[index]
windowlist[window] = char
index = index + 1
local big_char = self.big_chars[char:lower()]
local window_id = self:_show_letter_in_window(window, big_char)
table.insert(self.windows, window_id)
Expand All @@ -157,6 +169,8 @@ function M:draw(windows, or_create)
end
end
end

return windowlist
end

local function clear_list_of_windows(windows)
Expand Down
7 changes: 6 additions & 1 deletion lua/window-picker/pickers/window-picker.lua
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ end
function M:set_config(config)
self.chars = config.chars
self.create_chars = config.create_chars
self.process_unknown_char = config.process_unknown_char
self.show_prompt = config.show_prompt
self.prompt_message = config.prompt_message
self.autoselect_one = config.filter_rules.autoselect_one
Expand Down Expand Up @@ -73,7 +74,7 @@ function M:pick_window()
return windows[1]
end

self.hint:draw(windows, self.or_create)
local windowlist = self.hint:draw(windows, self.or_create)

vim.cmd.redraw()

Expand Down Expand Up @@ -107,6 +108,10 @@ function M:pick_window()
window = self:_find_matching_win_for_char(char, windows, create_action)
end

if not window and self.process_unknown_char then
window = self.process_unknown_char(char, windowlist)
end

return window
end

Expand Down

0 comments on commit f83698f

Please sign in to comment.