Merge pull request #127 from krady21/fzf-binds-change

* pr_127:
  fzf_binds backward compatibility
  core: Change fzf_binds configuration style
main
bhagwan 3 years ago
commit 4955e3e899

@ -224,16 +224,16 @@ require'fzf-lua'.setup {
fzf_layout = 'reverse', -- fzf '--layout=' options
fzf_args = '', -- adv: fzf extra args, empty unless adv
fzf_binds = { -- fzf '--bind=' options
'f2:toggle-preview',
'f3:toggle-preview-wrap',
'shift-down:preview-page-down',
'shift-up:preview-page-up',
'ctrl-u:unix-line-discard',
'ctrl-f:half-page-down',
'ctrl-b:half-page-up',
'ctrl-a:beginning-of-line',
'ctrl-e:end-of-line',
'alt-a:toggle-all',
["f2"] = "toggle-preview",
["f3"] = "toggle-preview-wrap",
["shift-down"] = "preview-page-down",
["shift-up"] = "preview-page-up",
["ctrl-u"] = "unix-line-discard",
["ctrl-f"] = "half-page-down",
["ctrl-b"] = "half-page-up",
["ctrl-a"] = "beginning-of-line",
["ctrl-e"] = "end-of-line",
["alt-a"] = "toggle-all",
},
--[[ fzf_colors = { -- fzf '--color=' options
["fg"] = { "fg", "CursorLine" },

@ -46,16 +46,16 @@ M.globals = {
-- <C-u> clear query
-- <A-a> toggle select-all
-- <A-q> send selected to quickfix
'f2:toggle-preview',
'f3:toggle-preview-wrap',
'shift-down:preview-page-down',
'shift-up:preview-page-up',
'ctrl-u:unix-line-discard',
'ctrl-f:half-page-down',
'ctrl-b:half-page-up',
'ctrl-a:beginning-of-line',
'ctrl-e:end-of-line',
'alt-a:toggle-all',
["f2"] = "toggle-preview",
["f3"] = "toggle-preview-wrap",
["shift-down"] = "preview-page-down",
["shift-up"] = "preview-page-up",
["ctrl-u"] = "unix-line-discard",
["ctrl-f"] = "half-page-down",
["ctrl-b"] = "half-page-up",
["ctrl-a"] = "beginning-of-line",
["ctrl-e"] = "end-of-line",
["alt-a"] = "toggle-all",
},
preview_border = 'border',
preview_wrap = 'nowrap',

@ -101,11 +101,29 @@ M.create_fzf_colors = function(colors)
return string.format("--color=%s", colors)
end
M.create_fzf_binds = function(binds)
if not binds then return '' end
local tbl = {}
local dedup = {}
for k, v in pairs(binds) do
-- backward compatibility to when binds
-- where defined as one string '<key>:<command>'
local key, action = v:match("(.*):(.*)")
if action then k, v = key, action end
dedup[k] = v
end
for key, action in pairs(dedup) do
table.insert(tbl, string.format("%s:%s", key, action))
end
return "--bind=" .. vim.fn.shellescape(table.concat(tbl, ","))
end
M.build_fzf_cli = function(opts, debug_print)
opts.prompt = opts.prompt or config.globals.default_prompt
opts.preview_offset = opts.preview_offset or ''
opts.fzf_info = opts.fzf_info or config.globals.fzf_info
opts.fzf_ansi = opts.fzf_ansi or config.globals.fzf_ansi
if not opts.fzf_info then
-- skim (rust version of fzf) doesn't
-- support the '--info=' flag
@ -113,15 +131,14 @@ M.build_fzf_cli = function(opts, debug_print)
end
local cli = string.format(
[[ %s %s --layout=%s --bind=%s --prompt=%s]] ..
[[ %s %s --layout=%s %s --prompt=%s]] ..
[[ --preview-window=%s%s --preview=%s]] ..
[[ --height=100%%]] ..
[[ %s %s %s %s %s %s %s]],
opts.fzf_args or config.globals.fzf_args or '',
M.create_fzf_colors(opts.fzf_colors or config.globals.fzf_colors),
opts.fzf_layout or config.globals.fzf_layout,
utils._if(opts.fzf_binds, opts.fzf_binds,
vim.fn.shellescape(table.concat(config.globals.fzf_binds, ','))),
M.create_fzf_binds(opts.fzf_binds or config.globals.fzf_binds),
vim.fn.shellescape(opts.prompt),
utils._if(opts.preview_window, opts.preview_window, M.preview_window(opts)),
utils._if(#opts.preview_offset>0, ":"..opts.preview_offset, ''),

Loading…
Cancel
Save