diff options
| author | Simon Hauser <Simon-Hauser@outlook.de> | 2022-06-13 18:53:16 +0200 |
|---|---|---|
| committer | Simon Hauser <simon.hauser@helsinki-systems.de> | 2022-06-30 14:01:52 +0200 |
| commit | 25b1bc8f17e1b658551cf2435fa2070dc96edc4e (patch) | |
| tree | 1c627f953a1fbd82f386ef2dccaa3b47d31d7c82 /lua/telescope/previewers/previewer.lua | |
| parent | bef86acb6c9ddf25602d28f4ad4980806f25420e (diff) | |
feat: clear previewer if no item is selected (#2004)
Diffstat (limited to 'lua/telescope/previewers/previewer.lua')
| -rw-r--r-- | lua/telescope/previewers/previewer.lua | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lua/telescope/previewers/previewer.lua b/lua/telescope/previewers/previewer.lua index 834df2c..f986dac 100644 --- a/lua/telescope/previewers/previewer.lua +++ b/lua/telescope/previewers/previewer.lua @@ -1,3 +1,5 @@ +local utils = require "telescope.utils" + local Previewer = {} Previewer.__index = Previewer @@ -25,11 +27,19 @@ function Previewer:new(opts) _send_input = opts.send_input, _scroll_fn = opts.scroll_fn, preview_fn = opts.preview_fn, + _empty_bufnr = nil, }, Previewer) end function Previewer:preview(entry, status) if not entry then + if not self._empty_bufnr then + self._empty_bufnr = vim.api.nvim_create_buf(false, true) + end + + if vim.api.nvim_buf_is_valid(self._empty_bufnr) then + vim.api.nvim_win_set_buf(status.preview_win, self._empty_bufnr) + end return end @@ -47,7 +57,11 @@ end function Previewer:title(entry, dynamic) if dynamic == true and self._dyn_title_fn ~= nil then if entry == nil then - return nil + if self._title_fn ~= nil then + return self:_title_fn() + else + return "" + end end return self:_dyn_title_fn(entry) end @@ -57,6 +71,9 @@ function Previewer:title(entry, dynamic) end function Previewer:teardown() + if self._empty_bufnr then + utils.buf_delete(self._empty_bufnr) + end if self._teardown_func then self:_teardown_func() end |
