TelescopeMapArgs = TelescopeMapArgs or {} local telescope = require "telescope" local telescope_mapper = function(key, f, options, buffer) local map_key = vim.api.nvim_replace_termcodes(key .. f, true, true, true) TelescopeMapArgs[map_key] = options or {} local mode = "n" local rhs = string.format("lua R('opdavies.telescope')['%s'](TelescopeMapArgs['%s'])", f, map_key) local map_options = { noremap = true, silent = true, } if not buffer then vim.api.nvim_set_keymap(mode, key, rhs, map_options) else vim.api.nvim_buf_set_keymap(0, mode, key, rhs, map_options) end end telescope_mapper("fb", "buffers") telescope_mapper("fd", "fd") telescope_mapper("fe", "file_browser") telescope_mapper("ff", "current_buf") telescope_mapper("fg", "git_files") telescope_mapper("fh", "help_tags") telescope_mapper("fl", "live_grep") telescope_mapper("ds", "lsp_document_symbols") telescope_mapper("dl", "diagnostics") telescope_mapper("en", "edit_neovim") telescope_mapper("ez", "edit_zsh") local nmap = require("opdavies.keymap").nmap nmap { "gm", telescope.extensions.git_worktree.create_git_worktree } nmap { "gw", telescope.extensions.git_worktree.git_worktrees } return telescope_mapper