From c4de28730c95d5918e1e69c0f7492f4bd4135643 Mon Sep 17 00:00:00 2001 From: spike Date: Sun, 21 Aug 2022 23:45:36 +0200 Subject: [PATCH] nicer UI for keymaps inspired from telescope --- lua/fzf-lua/providers/nvim.lua | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/lua/fzf-lua/providers/nvim.lua b/lua/fzf-lua/providers/nvim.lua index 165c1f7..da87b30 100644 --- a/lua/fzf-lua/providers/nvim.lua +++ b/lua/fzf-lua/providers/nvim.lua @@ -268,21 +268,27 @@ M.keymaps = function(opts) opts = config.normalize_opts(opts, config.globals.nvim.keymaps) if not opts then return end - local modes = { "n", "i", "c" } + local modes = { + n = "blue", + i = "red", + c = "yellow" + } local keymaps = {} local add_keymap = function(keymap) -- hijack fields - keymap.str = string.format("[%s:%s:%s]", - utils.ansi_codes.yellow(tostring(keymap.buffer)), - utils.ansi_codes.green(keymap.mode), - utils.ansi_codes.magenta(keymap.lhs:gsub("%s", ""))) + local keymap_desc = keymap.desc == nil and keymap.rhs or keymap.desc + keymap.str = string.format("%s │ %-40s │ %s", + utils.ansi_codes[modes[keymap.mode] or "blue"](keymap.mode), + keymap.lhs:gsub("%s", ""), + keymap_desc) + local k = string.format("[%s:%s:%s]", keymap.buffer, keymap.mode, keymap.lhs) keymaps[k] = keymap end - for _, mode in pairs(modes) do + for mode, _ in pairs(modes) do local global = vim.api.nvim_get_keymap(mode) for _, keymap in pairs(global) do add_keymap(keymap) @@ -293,25 +299,12 @@ M.keymaps = function(opts) end end - local prev_act = shell.action(function (args) - local k = args[1]:match("(%[.*%]) ") - local v = keymaps[k] - if v then - -- clear hijacked field - v.str = nil - k = vim.inspect(v) - end - return k - end, nil, opts.debug) - local entries = {} for _, v in pairs(keymaps) do - table.insert(entries, string.format("%-50s %s", - v.str, v.rhs)) + table.insert(entries, v.str) end opts.fzf_opts['--no-multi'] = '' - opts.fzf_opts['--preview'] = prev_act core.fzf_exec(entries, opts) end