summaryrefslogtreecommitdiff
path: root/lua/telescope/pickers.lua
diff options
context:
space:
mode:
authorfdschmidt93 <39233597+fdschmidt93@users.noreply.github.com>2021-11-15 17:58:43 +0100
committerGitHub <noreply@github.com>2021-11-15 17:58:43 +0100
commit404d2b5f1080b352e3b093bf9b2d690eb1931743 (patch)
treeb38fbadf3c0d5d6cc5b8635cefa6e6fc39ed26cd /lua/telescope/pickers.lua
parent729492406ec3b545c4ecf2beadf7bd30c81e70e4 (diff)
feat: allow changing results/prompt title & persisting multi on picker:refresh (#1451)
Diffstat (limited to 'lua/telescope/pickers.lua')
-rw-r--r--lua/telescope/pickers.lua18
1 files changed, 13 insertions, 5 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua
index 212c236..8f932ff 100644
--- a/lua/telescope/pickers.lua
+++ b/lua/telescope/pickers.lua
@@ -321,11 +321,12 @@ function Picker:find()
end
-- local results_win, results_opts = popup.create("", popup_opts.results)
- local results_win, _, results_border_win = self:_create_window("", popup_opts.results, true)
+ local results_win, results_opts, results_border_win = self:_create_window("", popup_opts.results, true)
local results_bufnr = a.nvim_win_get_buf(results_win)
self.results_bufnr = results_bufnr
self.results_win = results_win
+ self.results_border = results_opts and results_opts.border
local preview_win, preview_opts, preview_bufnr, preview_border_win
if popup_opts.preview then
@@ -334,11 +335,15 @@ function Picker:find()
end
-- This is needed for updating the title
local preview_border = preview_opts and preview_opts.border
+ self.preview_win = preview_win
self.preview_border = preview_border
- local prompt_win, _, prompt_border_win = self:_create_window("", popup_opts.prompt)
+ local prompt_win, prompt_opts, prompt_border_win = self:_create_window("", popup_opts.prompt)
local prompt_bufnr = a.nvim_win_get_buf(prompt_win)
+
self.prompt_bufnr = prompt_bufnr
+ self.prompt_win = prompt_win
+ self.prompt_border = prompt_opts and prompt_opts.border
-- Prompt prefix
local prompt_prefix = self.prompt_prefix
@@ -770,8 +775,11 @@ function Picker:reset_prompt(text)
end
end
---- opts.new_prefix: Either as string or { new_string, hl_group }
---- opts.reset_prompt: bool
+---@param finder finder: telescope finder (see telescope/finders.lua)
+---@param opts table: options to pass when refreshing the picker
+---@field new_prefix string|table: either as string or { new_string, hl_group }
+---@field reset_prompt bool: whether to reset the prompt
+---@field multi MultiSelect: multi-selection to persist upon renewing finder (see telescope/pickers/multi.lua)
function Picker:refresh(finder, opts)
opts = opts or {}
if opts.new_prefix then
@@ -787,7 +795,7 @@ function Picker:refresh(finder, opts)
if finder then
self.finder:close()
self.finder = finder
- self._multi = MultiSelect:new()
+ self._multi = vim.F.if_nil(opts.multi, MultiSelect:new())
end
self._on_lines(nil, nil, nil, 0, 1)