summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/telescope.txt15
-rw-r--r--lua/telescope/actions/init.lua8
-rw-r--r--lua/telescope/actions/set.lua24
-rw-r--r--lua/telescope/mappings.lua7
4 files changed, 52 insertions, 2 deletions
diff --git a/doc/telescope.txt b/doc/telescope.txt
index 7f7f89f..8517b04 100644
--- a/doc/telescope.txt
+++ b/doc/telescope.txt
@@ -2190,7 +2190,20 @@ action_set.edit({prompt_bufnr}, {command}) *action_set.edit()*
action_set.scroll_previewer({prompt_bufnr}, {direction}) *action_set.scroll_previewer()*
- Scrolls the previewer up or down
+ Scrolls the previewer up or down. Defaults to a half page scroll, but can
+ be overridden using the `scroll_speed` option in `layout_config`. See
+ |telescope.layout| for more details.
+
+
+ Parameters: ~
+ {prompt_bufnr} (number) The prompt bufnr
+ {direction} (number) The direction of the scrolling
+
+
+action_set.scroll_results({prompt_bufnr}, {direction}) *action_set.scroll_results()*
+ Scrolls the results up or down. Defaults to a half page scroll, but can be
+ overridden using the `scroll_speed` option in `layout_config`. See
+ |telescope.layout| for more details.
Parameters: ~
diff --git a/lua/telescope/actions/init.lua b/lua/telescope/actions/init.lua
index 5ff24cb..e87bac6 100644
--- a/lua/telescope/actions/init.lua
+++ b/lua/telescope/actions/init.lua
@@ -152,6 +152,14 @@ function actions.preview_scrolling_down(prompt_bufnr)
action_set.scroll_previewer(prompt_bufnr, 1)
end
+function actions.results_scrolling_up(prompt_bufnr)
+ action_set.scroll_results(prompt_bufnr, -1)
+end
+
+function actions.results_scrolling_down(prompt_bufnr)
+ action_set.scroll_results(prompt_bufnr, 1)
+end
+
function actions.center(_)
vim.cmd ":normal! zz"
end
diff --git a/lua/telescope/actions/set.lua b/lua/telescope/actions/set.lua
index 320addd..b7170db 100644
--- a/lua/telescope/actions/set.lua
+++ b/lua/telescope/actions/set.lua
@@ -143,7 +143,9 @@ action_set.edit = function(prompt_bufnr, command)
end
end
---- Scrolls the previewer up or down
+--- Scrolls the previewer up or down.
+--- Defaults to a half page scroll, but can be overridden using the `scroll_speed`
+--- option in `layout_config`. See |telescope.layout| for more details.
---@param prompt_bufnr number: The prompt bufnr
---@param direction number: The direction of the scrolling
-- Valid directions include: "1", "-1"
@@ -162,6 +164,26 @@ action_set.scroll_previewer = function(prompt_bufnr, direction)
previewer:scroll_fn(math.floor(speed * direction))
end
+--- Scrolls the results up or down.
+--- Defaults to a half page scroll, but can be overridden using the `scroll_speed`
+--- option in `layout_config`. See |telescope.layout| for more details.
+---@param prompt_bufnr number: The prompt bufnr
+---@param direction number: The direction of the scrolling
+-- Valid directions include: "1", "-1"
+action_set.scroll_results = function(prompt_bufnr, direction)
+ local status = state.get_status(prompt_bufnr)
+ local default_speed = vim.api.nvim_win_get_height(status.results_win) / 2
+ local speed = status.picker.layout_config.scroll_speed or default_speed
+
+ local input = direction > 0 and [[]] or [[]]
+
+ vim.api.nvim_win_call(status.results_win, function()
+ vim.cmd([[normal! ]] .. math.floor(speed) .. input)
+ end)
+
+ action_set.shift_selection(prompt_bufnr, math.floor(speed) * direction)
+end
+
-- ==================================================
-- Transforms modules and sets the corect metatables.
-- ==================================================
diff --git a/lua/telescope/mappings.lua b/lua/telescope/mappings.lua
index 08bc3bb..27e5d07 100644
--- a/lua/telescope/mappings.lua
+++ b/lua/telescope/mappings.lua
@@ -25,6 +25,9 @@ mappings.default_mappings = config.values.default_mappings
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
+ ["<PageUp>"] = actions.results_scrolling_up,
+ ["<PageDown>"] = actions.results_scrolling_down,
+
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
@@ -59,6 +62,10 @@ mappings.default_mappings = config.values.default_mappings
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
+
+ ["<PageUp>"] = actions.results_scrolling_up,
+ ["<PageDown>"] = actions.results_scrolling_down,
+
["?"] = actions.which_key,
},
}