diff options
Diffstat (limited to 'lua/telescope')
| -rw-r--r-- | lua/telescope/actions/init.lua | 6 | ||||
| -rw-r--r-- | lua/telescope/actions/set.lua | 1 | ||||
| -rw-r--r-- | lua/telescope/pickers/scroller.lua | 10 |
3 files changed, 15 insertions, 2 deletions
diff --git a/lua/telescope/actions/init.lua b/lua/telescope/actions/init.lua index 19a6d04..bf6bd4f 100644 --- a/lua/telescope/actions/init.lua +++ b/lua/telescope/actions/init.lua @@ -80,7 +80,11 @@ end function actions.move_to_middle(prompt_bufnr) local current_picker = actions.get_current_picker(prompt_bufnr) - current_picker:set_selection(p_scroller.middle(nil, current_picker.max_results, nil)) + current_picker:set_selection(p_scroller.middle( + current_picker.sorting_strategy, + current_picker.max_results, + current_picker.manager:num_results() + )) end function actions.move_to_bottom(prompt_bufnr) diff --git a/lua/telescope/actions/set.lua b/lua/telescope/actions/set.lua index 4e92848..bd4f1b3 100644 --- a/lua/telescope/actions/set.lua +++ b/lua/telescope/actions/set.lua @@ -28,6 +28,7 @@ local set = setmetatable({}, { set.shift_selection = function(prompt_bufnr, change) local count = vim.v.count count = count == 0 and 1 or count + count = a.nvim_get_mode().mode == "n" and count or 1 action_state.get_current_picker(prompt_bufnr):move_selection(change * count) end diff --git a/lua/telescope/pickers/scroller.lua b/lua/telescope/pickers/scroller.lua index d330dec..b77fc96 100644 --- a/lua/telescope/pickers/scroller.lua +++ b/lua/telescope/pickers/scroller.lua @@ -81,7 +81,15 @@ scroller.top = function(sorting_strategy, max_results, num_results) end scroller.middle = function(sorting_strategy, max_results, num_results) - return math.floor(max_results/2) + local mid_pos + + if sorting_strategy == 'ascending' then + mid_pos = math.floor(num_results / 2) + else + mid_pos = math.floor(max_results - num_results / 2) + end + + return (num_results < max_results) and mid_pos or math.floor(max_results / 2) end scroller.bottom = function(sorting_strategy, max_results, num_results) |
