summaryrefslogtreecommitdiff
path: root/lua/telescope/make_entry.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/telescope/make_entry.lua')
-rw-r--r--lua/telescope/make_entry.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/lua/telescope/make_entry.lua b/lua/telescope/make_entry.lua
index 2d53248..98129d7 100644
--- a/lua/telescope/make_entry.lua
+++ b/lua/telescope/make_entry.lua
@@ -693,6 +693,44 @@ function make_entry.gen_from_registers(_)
end
end
+function make_entry.gen_from_keymaps(opts)
+ local function get_desc(entry)
+ return entry.desc or entry.rhs or "Lua function"
+ end
+ local function get_lhs(entry)
+ return utils.display_termcodes(entry.lhs)
+ end
+
+ local displayer = require("telescope.pickers.entry_display").create {
+ separator = "▏",
+ items = {
+ { width = 2 },
+ { width = opts.width_lhs },
+ { remaining = true },
+ },
+ }
+ local make_display = function(entry)
+ return displayer {
+ entry.mode,
+ get_lhs(entry),
+ get_desc(entry),
+ }
+ end
+
+ return function(entry)
+ return {
+ mode = entry.mode,
+ lhs = get_lhs(entry),
+ desc = get_desc(entry),
+ --
+ valid = entry ~= "",
+ value = entry,
+ ordinal = entry.mode .. " " .. get_lhs(entry) .. " " .. get_desc(entry),
+ display = make_display,
+ }
+ end
+end
+
function make_entry.gen_from_highlights()
local make_display = function(entry)
local display = entry.value