feat: add hide / unhide preview (#1305)

* feat: add hide / unhide preview or results and prompt

* fix edit actions while only preview window is active

* add option to start telescope without previewer -> "disable_previewer_at_startup"

* remove hide / unhide prompt and resutls, improve hide / unhide preview

* fix tests - check if popup window should be created with borders - popup.create does not support setting borderhighlight and border=false

* allow toggle preview even if preview is set to false

* reuse recalculate_layout in hide / unhide preview

* add docs to toggle preview

* check if preview window is valid window

* remove unnecessary changes

* cleanup, remove unnecessary changes

* close all previewers, refactor toggle preview code

[docgen] Update doc/telescope.txt
skip-checks: true
This commit is contained in:
johnybx
2021-11-08 18:20:17 +01:00
committed by Luke Kershaw
parent e9743620ce
commit b952c2f852
5 changed files with 134 additions and 73 deletions

View File

@@ -144,6 +144,13 @@ function actions.toggle_all(prompt_bufnr)
end)
end
--- Toggle preview window.
--- - Note: preview window can be toggled even if preview is set to false.
---@param prompt_bufnr number: The prompt bufnr
function actions.toggle_preview(prompt_bufnr)
action_state.get_current_picker(prompt_bufnr):toggle_preview()
end
function actions.preview_scrolling_up(prompt_bufnr)
action_set.scroll_previewer(prompt_bufnr, -1)
end
@@ -240,23 +247,14 @@ end
actions._close = function(prompt_bufnr, keepinsert)
action_state.get_current_history():reset()
local picker = action_state.get_current_picker(prompt_bufnr)
local prompt_win = state.get_status(prompt_bufnr).prompt_win
local original_win_id = picker.original_win_id
if picker.previewer then
for _, v in ipairs(picker.all_previewers) do
v:teardown()
end
end
actions.close_pum(prompt_bufnr)
if not keepinsert then
vim.cmd [[stopinsert]]
end
vim.api.nvim_win_close(prompt_win, true)
pcall(vim.cmd, string.format([[silent bdelete! %s]], prompt_bufnr))
require("telescope.pickers").on_close_prompt(prompt_bufnr)
pcall(a.nvim_set_current_win, original_win_id)
end