feat(redraw): use `:FzfLua redraw` when term size changes (#498)

main
bhagwan 2 years ago
parent 4777dd572a
commit c8d0a0274e

@ -624,7 +624,7 @@ open an issue and I'll be more than happy to help.**
color_icons = true,
previewer = "git_diff",
-- uncomment if you wish to use git-delta as pager
--preview_pager = "delta --width=$FZF_PREVIEW_COLUMNS"
--preview_pager = "delta --width=$FZF_PREVIEW_COLUMNS",
actions = {
-- actions inherit from 'actions.files' and merge
["right"] = { actions.git_unstage, actions.resume },
@ -636,7 +636,7 @@ open an issue and I'll be more than happy to help.**
cmd = "git log --color --pretty=format:'%C(yellow)%h%Creset %Cgreen(%><(12)%cr%><|(12))%Creset %s %C(blue)<%an>%Creset'",
preview = "git show --pretty='%Cred%H%n%Cblue%an <%ae>%n%C(yellow)%cD%n%Cgreen%s' --color {1}",
-- uncomment if you wish to use git-delta as pager
--preview_pager = "delta --width=$FZF_PREVIEW_COLUMNS"
--preview_pager = "delta --width=$FZF_PREVIEW_COLUMNS",
actions = {
["default"] = actions.git_checkout,
},
@ -651,7 +651,7 @@ open an issue and I'll be more than happy to help.**
cmd = "git log --color --pretty=format:'%C(yellow)%h%Creset %Cgreen(%><(12)%cr%><|(12))%Creset %s %C(blue)<%an>%Creset' <file>",
preview = "git diff --color {1}~1 {1} -- <file>",
-- uncomment if you wish to use git-delta as pager
--preview_pager = "delta --width=$FZF_PREVIEW_COLUMNS"
--preview_pager = "delta --width=$FZF_PREVIEW_COLUMNS",
actions = {
["default"] = actions.git_buf_edit,
["ctrl-s"] = actions.git_buf_split,
@ -1010,4 +1010,4 @@ I missed your name feel free to contact me and I'll add it below:
as baseline for the builtin previewer and his must have plugin nvim-bqf
<https://github.com/kevinhwang91/nvim-bqf>
vim:tw=78:ts=8:ft=help:norl:
vim:tw=78:ts=8:ft=help:norl:

@ -208,6 +208,13 @@ M.fzf_exec = require'fzf-lua.core'.fzf_exec
M.fzf_live = require'fzf-lua.core'.fzf_live
M.defaults = config.globals
M.redraw = function()
local winobj = require'fzf-lua'.win.__SELF()
if winobj then
winobj:redraw()
end
end
-- exported modules
M._exported_modules = {
'win',

@ -364,6 +364,7 @@ function FzfWin:new(o)
return _self
end
o = o or {}
self._o = o
self = setmetatable({}, { __index = self })
self.actions = o.actions
self.winopts = normalize_winopts(o)
@ -605,6 +606,19 @@ function FzfWin:fs_fzf_layout(fs, winopts)
end
function FzfWin:redraw()
self.winopts = normalize_winopts(self._o)
if not self.winopts.split and self.previewer_is_builtin then
self.layout = self:generate_layout(self.winopts)
end
if self:validate() then
self:redraw_main()
end
if self:validate_preview() then
self:redraw_preview()
end
end
function FzfWin:redraw_main()
if self.winopts.split then return end
local hidden = self._previewer and self.preview_hidden
local relative = self.winopts.relative or 'editor'
@ -754,7 +768,7 @@ function FzfWin:create()
self:set_style_minimal(self.fzf_winid)
else
-- draw the main window
self:redraw()
self:redraw_main()
end
-- verify the preview is closed, this can happen
@ -1056,7 +1070,7 @@ function FzfWin.toggle_fullscreen()
self.fullscreen = not self.fullscreen
self:hide_scrollbar()
if self and self:validate() then
self:redraw()
self:redraw_main()
end
if self and self:validate_preview() then
self:redraw_preview()
@ -1072,9 +1086,9 @@ function FzfWin.toggle_preview()
end
if self.preview_hidden and self:validate_preview() then
self:close_preview()
self:redraw()
self:redraw_main()
elseif not self.preview_hidden then
self:redraw()
self:redraw_main()
self:redraw_preview()
if self._previewer and self._previewer.display_last_entry then
self._previewer:display_last_entry()
@ -1117,7 +1131,7 @@ function FzfWin.toggle_preview_cw(direction)
self.winopts.preview_pos = pos[newidx]
self.layout = self:generate_layout(self.winopts)
self:close_preview()
self:redraw()
self:redraw_main()
self:redraw_preview()
if self._previewer and self._previewer.display_last_entry then
self._previewer:display_last_entry()

Loading…
Cancel
Save