diff --git a/doc/fzf-lua.txt b/doc/fzf-lua.txt index defdcd4..6659835 100644 --- a/doc/fzf-lua.txt +++ b/doc/fzf-lua.txt @@ -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' ", preview = "git diff --color {1}~1 {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_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 -vim:tw=78:ts=8:ft=help:norl: +vim:tw=78:ts=8:ft=help:norl: \ No newline at end of file diff --git a/lua/fzf-lua/init.lua b/lua/fzf-lua/init.lua index 1dccf73..1d9f317 100644 --- a/lua/fzf-lua/init.lua +++ b/lua/fzf-lua/init.lua @@ -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', diff --git a/lua/fzf-lua/win.lua b/lua/fzf-lua/win.lua index 18a9342..d9e3f01 100644 --- a/lua/fzf-lua/win.lua +++ b/lua/fzf-lua/win.lua @@ -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()