summaryrefslogtreecommitdiff
path: root/lua/telescope
diff options
context:
space:
mode:
authorCarlos Hernandez <hurricanehrndz@users.noreply.github.com>2020-11-14 12:38:21 -0700
committerGitHub <noreply@github.com>2020-11-14 14:38:21 -0500
commit3c2dea3ea5c03496a1a74e86decc22009a8a12a2 (patch)
treedc68330e7218035f8905006e5d7592f9afd43ad4 /lua/telescope
parent24057365dae52e76d6f2afb67f99eb94b51b40fc (diff)
feat: Add built-in to search keymaps (#191)
* Add built-in to search keymaps * Re-factor maps for cleaner codes Rather than use function to return a results table for various key maps. Assign results the key maps table itself. This makes for cleaner code. * Keymaps: escape termcodes using built-in util * Rename builtin.maps to builtin.keymaps
Diffstat (limited to 'lua/telescope')
-rw-r--r--lua/telescope/builtin.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/lua/telescope/builtin.lua b/lua/telescope/builtin.lua
index ed425a5..684afa8 100644
--- a/lua/telescope/builtin.lua
+++ b/lua/telescope/builtin.lua
@@ -923,4 +923,33 @@ builtin.marks = function(opts)
}):find()
end
+-- find normal mode mappings
+builtin.keymaps = function(opts)
+ opts = opts or {}
+ local modes = {"n", "i", "c"}
+ local keymaps_table = {}
+ for _, mode in pairs(modes) do
+ local keymaps_iter = vim.api.nvim_get_keymap(mode)
+ for _, keymap in pairs(keymaps_iter) do
+ table.insert(keymaps_table, keymap)
+ end
+ end
+
+ pickers.new({}, {
+ prompt_title = 'Key Maps',
+ finder = finders.new_table {
+ results = keymaps_table,
+ entry_maker = function(line)
+ return {
+ valid = line ~= "",
+ value = line,
+ ordinal = line.lhs .. line.rhs,
+ display = line.mode .. ' ' .. utils.display_termcodes(line.lhs) .. ' ' .. line.rhs
+ }
+ end
+ },
+ sorter = conf.generic_sorter()
+ }):find()
+end
+
return builtin