feat: define scroll speed + smart_send to qflist (#610)
* smart send to qflist * Previewer scrolling for half window height * Start doing cleanup in readme * feat: add ability to define the scrolling speed * move scrolling action to action.set * docs: added more docs for actions * [docgen] Update doc/telescope.txt skip-checks: true Co-authored-by: Simon Hauser <Simon-Hauser@outlook.de> Co-authored-by: Github Actions <actions@github>
This commit is contained in:
@@ -144,13 +144,11 @@ function actions.toggle_selection(prompt_bufnr)
|
||||
end
|
||||
|
||||
function actions.preview_scrolling_up(prompt_bufnr)
|
||||
-- TODO: Make number configurable.
|
||||
action_state.get_current_picker(prompt_bufnr).previewer:scroll_fn(-30)
|
||||
action_set.scroll_previewer(prompt_bufnr, -1)
|
||||
end
|
||||
|
||||
function actions.preview_scrolling_down(prompt_bufnr)
|
||||
-- TODO: Make number configurable.
|
||||
action_state.get_current_picker(prompt_bufnr).previewer:scroll_fn(30)
|
||||
action_set.scroll_previewer(prompt_bufnr, 1)
|
||||
end
|
||||
|
||||
function actions.center(_)
|
||||
@@ -413,6 +411,16 @@ actions.send_to_qflist = function(prompt_bufnr)
|
||||
vim.fn.setqflist(qf_entries, 'r')
|
||||
end
|
||||
|
||||
actions.smart_send_to_qflist = function(prompt_bufnr)
|
||||
local picker = action_state.get_current_picker(prompt_bufnr)
|
||||
if table.getn(picker:get_multi_selection()) > 0 then
|
||||
actions.send_selected_to_qflist(prompt_bufnr)
|
||||
else
|
||||
actions.send_to_qflist(prompt_bufnr)
|
||||
end
|
||||
end
|
||||
|
||||
--- Open the quickfix list
|
||||
actions.open_qflist = function(_)
|
||||
vim.cmd [[copen]]
|
||||
end
|
||||
|
||||
@@ -2,6 +2,7 @@ local a = vim.api
|
||||
|
||||
local log = require('telescope.log')
|
||||
local path = require('telescope.path')
|
||||
local state = require('telescope.state')
|
||||
|
||||
local action_state = require('telescope.actions.state')
|
||||
|
||||
@@ -124,6 +125,18 @@ set.edit = function(prompt_bufnr, command)
|
||||
end
|
||||
end
|
||||
|
||||
--- Scrolls the previewer up or down
|
||||
---@param prompt_bufnr number: The prompt bufnr
|
||||
---@param direction number: The direction of the scrolling
|
||||
-- Valid directions include: "1", "-1"
|
||||
set.scroll_previewer = function (prompt_bufnr, direction)
|
||||
local status = state.get_status(prompt_bufnr)
|
||||
local default_speed = vim.api.nvim_win_get_height(status.preview_win) / 2
|
||||
local speed = status.picker.layout_config.scroll_speed or default_speed
|
||||
|
||||
action_state.get_current_picker(prompt_bufnr).previewer:scroll_fn(math.floor(speed * direction))
|
||||
end
|
||||
|
||||
-- ==================================================
|
||||
-- Transforms modules and sets the corect metatables.
|
||||
-- ==================================================
|
||||
|
||||
Reference in New Issue
Block a user