From 14228229b8138e4a306bd0f633e3e55a77a58d6e Mon Sep 17 00:00:00 2001 From: bhagwan Date: Thu, 7 Mar 2024 15:21:51 -0800 Subject: [PATCH] feat(git_stash): auto-detect delta previewer --- lua/fzf-lua/defaults.lua | 11 ++++++----- lua/fzf-lua/providers/git.lua | 7 +++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lua/fzf-lua/defaults.lua b/lua/fzf-lua/defaults.lua index b3607c33..6799fa8b 100644 --- a/lua/fzf-lua/defaults.lua +++ b/lua/fzf-lua/defaults.lua @@ -298,14 +298,15 @@ M.defaults.git = { actions = { ["default"] = actions.git_checkout }, }, stash = { - prompt = "Stash> ", - cmd = "git --no-pager stash list", - preview = "git --no-pager stash show --patch --color {1}", - actions = { + prompt = "Stash> ", + cmd = "git --no-pager stash list", + preview = "git --no-pager stash show --patch --color {1}", + preview_pager = M._preview_pager_fn, + actions = { ["default"] = actions.git_stash_apply, ["ctrl-x"] = { fn = actions.git_stash_drop, reload = true }, }, - fzf_opts = { + fzf_opts = { -- TODO: multiselect requires more work as dropping -- a stash changes the stash index, causing an error -- when the next stash is attempted diff --git a/lua/fzf-lua/providers/git.lua b/lua/fzf-lua/providers/git.lua index a9e9e64e..1cd03dec 100644 --- a/lua/fzf-lua/providers/git.lua +++ b/lua/fzf-lua/providers/git.lua @@ -193,6 +193,13 @@ M.stash = function(opts) if opts.preview then opts.preview = path.git_cwd(opts.preview, opts) + if type(opts.preview_pager) == "function" then + opts.preview_pager = opts.preview_pager() + end + if opts.preview_pager then + opts.preview = string.format("%s | %s", opts.preview, + utils._if_win_normalize_vars(opts.preview_pager)) + end end if opts.search and opts.search ~= "" then -- search by stash content, git stash -G