summaryrefslogtreecommitdiff
path: root/lua/telescope/pickers.lua
diff options
context:
space:
mode:
authorLuke Kershaw <35707277+l-kershaw@users.noreply.github.com>2021-11-16 11:14:52 +0000
committerLuke Kershaw <35707277+l-kershaw@users.noreply.github.com>2021-11-18 19:44:12 +0000
commitd686fb27998fc130f7b851fb6c540f3f1fe806e8 (patch)
treeaeb44da568dcd5b39202b41e7d65fb82a11eab81 /lua/telescope/pickers.lua
parentedcf07cf885f86c08c5b15f333b7c82b15c3527b (diff)
fix: cleanup of layout actions
* fix: finish docs and remove mistakes from merge * fix: change order of `popup` changes based on type of change - removes "flash" issue where popups don't update in sync
Diffstat (limited to 'lua/telescope/pickers.lua')
-rw-r--r--lua/telescope/pickers.lua38
1 files changed, 26 insertions, 12 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua
index b626c46..6b850e9 100644
--- a/lua/telescope/pickers.lua
+++ b/lua/telescope/pickers.lua
@@ -533,11 +533,12 @@ function Picker:recalculate_layout()
local results_win = status.results_win
local preview_win = status.preview_win
- popup.move(results_win, popup_opts.results)
-
local preview_opts, preview_border_win
if popup_opts.preview then
if preview_win ~= nil then
+ -- Move all popups at the same time
+ popup.move(prompt_win, popup_opts.prompt)
+ popup.move(results_win, popup_opts.results)
popup.move(preview_win, popup_opts.preview)
else
popup_opts.preview.highlight = "TelescopePreviewNormal"
@@ -555,20 +556,33 @@ function Picker:recalculate_layout()
self.preview_win = preview_win
self.preview_border_win = preview_border_win
self.preview_border = preview_opts and preview_opts.border
+
+ -- Move prompt and results after preview created
+ vim.defer_fn(function()
+ popup.move(prompt_win, popup_opts.prompt)
+ popup.move(results_win, popup_opts.results)
+ end, 0)
end
elseif preview_win ~= nil then
- utils.win_delete("preview_win", preview_win, true)
- utils.win_delete("preview_win", status.preview_border_win, true)
- status.preview_win = nil
- status.preview_border_win = nil
- state.set_status(prompt_win, status)
- self.preview_win = nil
- self.preview_border_win = nil
- self.preview_border = nil
+ popup.move(prompt_win, popup_opts.prompt)
+ popup.move(results_win, popup_opts.results)
+
+ -- Remove preview after the prompt and results are moved
+ vim.defer_fn(function()
+ utils.win_delete("preview_win", preview_win, true)
+ utils.win_delete("preview_win", status.preview_border_win, true)
+ status.preview_win = nil
+ status.preview_border_win = nil
+ state.set_status(prompt_win, status)
+ self.preview_win = nil
+ self.preview_border_win = nil
+ self.preview_border = nil
+ end, 0)
+ else
+ popup.move(prompt_win, popup_opts.prompt)
+ popup.move(results_win, popup_opts.results)
end
- popup.move(prompt_win, popup_opts.prompt)
-
-- Temporarily disabled: Draw the screen ASAP. This makes things feel speedier.
-- vim.cmd [[redraw]]