summaryrefslogtreecommitdiff
path: root/lua/telescope
diff options
context:
space:
mode:
Diffstat (limited to 'lua/telescope')
-rw-r--r--lua/telescope/actions/init.lua6
-rw-r--r--lua/telescope/actions/set.lua1
-rw-r--r--lua/telescope/pickers/scroller.lua10
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)