From 9b5fd877e0190426f5301e03bbbd1cf5d56caebc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartosz=20M=C4=85ka?= Date: Mon, 11 Oct 2021 20:09:42 +0200 Subject: [PATCH] Add pager option and pipe cmd to pager if exists git_diff pager: check for empty string --- lua/fzf-lua/previewer/fzf.lua | 7 ++++++- lua/fzf-lua/previewer/init.lua | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/fzf-lua/previewer/fzf.lua b/lua/fzf-lua/previewer/fzf.lua index 830ee20..d3b8d22 100644 --- a/lua/fzf-lua/previewer/fzf.lua +++ b/lua/fzf-lua/previewer/fzf.lua @@ -177,12 +177,17 @@ function Previewer.git_diff:cmdline(o) local file = path.entry_to_file(items[1], not self.relative and self.opts.cwd) local cmd = self.cmd local args = self.args + local pager = "" + if self.pager and #self.pager>0 and + vim.fn.executable(self.pager) == 1 then + pager = '| ' .. self.pager + end if is_untracked then args = args .. " --no-index /dev/null" end if is_deleted then cmd = self.cmd:gsub("diff", "show HEAD:") cmd = string.format('%s"%s"', cmd, path.relative(file.path, self.opts.cwd)) else - cmd = string.format('%s %s %s', cmd, args, vim.fn.shellescape(file.path)) + cmd = string.format('%s %s %s %s', cmd, args, vim.fn.shellescape(file.path), pager) end -- uncomment to see the command in the preview window -- cmd = vim.fn.shellescape(cmd) diff --git a/lua/fzf-lua/previewer/init.lua b/lua/fzf-lua/previewer/init.lua index 9c71421..7c3aadf 100644 --- a/lua/fzf-lua/previewer/init.lua +++ b/lua/fzf-lua/previewer/init.lua @@ -16,6 +16,7 @@ function Previewer:new(o, opts) self.cmd = o.cmd; self.args = o.args or ""; self.relative = o.relative + self.pager = o.pager self.opts = opts; return self end