help_tags: fix preview toggle, man_pages: fix extra buffer

main
bhagwan 2 years ago
parent 0fa4f3d7d7
commit 3fa3eb0ffe

@ -73,7 +73,7 @@ function Previewer.base:set_preview_buf(newbuf)
api.nvim_win_set_buf(self.win.preview_winid, newbuf)
self.preview_bufnr = newbuf
-- set preview window options
if not self.preview_isterm then
if not self.do_not_set_winopts then
self:set_winopts(self.win.preview_winid)
end
end
@ -96,7 +96,7 @@ function Previewer.base:clear_preview_buf()
-- so techinically this should never be executed unless we're the
-- user wrote an fzf-lua extension and set the preview buffer to
-- a random buffer without the 'bufhidden' property
if not self.preview_isuri
if not self.do_not_unload
and self.preview_bufnr
and vim.api.nvim_buf_is_valid(self.preview_bufnr) then
api.nvim_buf_call(self.preview_bufnr, function()
@ -142,7 +142,7 @@ function Previewer.base:display_entry(entry_str)
self:populate_preview_buf(entry_str_)
-- set preview window options
if not self.preview_isterm then
if not self.do_not_set_winopts then
self:set_winopts(self.win.preview_winid)
end
@ -267,8 +267,8 @@ function Previewer.buffer_or_file:populate_preview_buf(entry_str)
if vim.tbl_isempty(entry) then return end
-- mark terminal buffers so we don't call 'set_winopts'
-- mark uri entries so we do not delete the preview buffer
self.preview_isuri = (entry.uri ~= nil)
self.preview_isterm = entry.terminal
self.do_not_unload = (entry.uri ~= nil)
self.do_not_set_winopts = entry.terminal
if not self:should_load_buffer(entry) then
-- same file/buffer as previous entry
-- no need to reload content
@ -462,6 +462,9 @@ function Previewer.help_tags:new(o, opts, fzf_win)
self.split = o.split
self.help_cmd = o.help_cmd or "help"
self.filetype = "help"
-- do not unload preview buffer
-- it's our dedicated ':help' buffer
self.do_not_unload = true
self:init_help_win()
return self
end
@ -553,7 +556,19 @@ end
-- inherit from help_tags for the specialized
-- 'gen_winopts()' without ':set number'
Previewer.man_pages = Previewer.help_tags:extend()
Previewer.man_pages = Previewer.base:extend()
function Previewer.man_pages:should_clear_preview(_)
return false
end
function Previewer.man_pages:gen_winopts()
local winopts = {
wrap = self.win.preview_wrap,
number = false
}
return vim.tbl_extend("keep", winopts, self.winopts)
end
function Previewer.man_pages:new(o, opts, fzf_win)
Previewer.man_pages.super.new(self, o, opts, fzf_win)

@ -979,7 +979,11 @@ function FzfWin.toggle_preview_wrap()
end
function FzfWin.toggle_preview_cw(direction)
if not _self or _self.winopts.split then return end
if not _self
or _self.winopts.split
or not _self:validate_preview() then
return
end
local self = _self
local pos = { 'up', 'right', 'down', 'left' }
local idx

Loading…
Cancel
Save