diff options
| author | fdschmidt93 <39233597+fdschmidt93@users.noreply.github.com> | 2021-09-01 20:11:53 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-01 20:11:53 +0200 |
| commit | fbe004142f69962d92eb6ede13a6721f7fdb4d50 (patch) | |
| tree | b301d26dc501f72b88ccd2c153666846fb68db96 /lua/telescope/actions/generate.lua | |
| parent | 5d37c3ea08f40d8c9d3a9ebcc72bd641d366c110 (diff) | |
feat: show keymaps for builtin actions (#1084)
* Add default mappings `<C-/>`and `?` for insert and normal mode, respectively, to show registered keymappings (`actions.which_key`) attached to prompt buffer
Diffstat (limited to 'lua/telescope/actions/generate.lua')
| -rw-r--r-- | lua/telescope/actions/generate.lua | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lua/telescope/actions/generate.lua b/lua/telescope/actions/generate.lua new file mode 100644 index 0000000..fafce8c --- /dev/null +++ b/lua/telescope/actions/generate.lua @@ -0,0 +1,56 @@ +---@tag telescope.actions.generate + +---@brief [[ +--- Module for convenience to override defaults of corresponding |telescope.actions| at |telescope.setup()|. +--- +--- <pre> +--- General usage: +--- require("telescope").setup { +--- defaults = { +--- mappings = { +--- n = { +--- ["?"] = action_generate.toggle_registered_actions { +--- name_width = 20, -- typically leads to smaller floats +--- max_height = 0.5, -- increase potential maximum height +--- seperator = " > ", -- change sep between mode, keybind, and name +--- close_with_action = false, -- do not close float on action +--- }, +--- }, +--- }, +--- }, +--- } +--- </pre> +---@brief ]] + +local actions = require "telescope.actions" +local action_generate = {} + +--- Display the keymaps of registered actions similar to which-key.nvim.<br> +--- - Floating window: +--- - Appears on the opposite side of the prompt. +--- - Resolves to minimum required number of lines to show hints with `opts` or truncates entries at `max_height`. +--- - Closes automatically on action call and can be disabled with by setting `close_with_action` to false. +---@param opts table: options to pass to toggling registered actions +---@field max_height number: % of max. height or no. of rows for hints (default: 0.4), see |resolver.resolve_height()| +---@field only_show_current_mode boolean: only show keymaps for the current mode (default: true) +---@field mode_width number: fixed width of mode to be shown (default: 1) +---@field keybind_width number: fixed width of keybind to be shown (default: 7) +---@field name_width number: fixed width of action name to be shown (default: 30) +---@field column_padding string: string to split; can be used for vertical seperator (default: " ") +---@field mode_hl string: hl group of mode (default: TelescopeResultsConstant) +---@field keybind_hl string: hl group of keybind (default: TelescopeResultsVariable) +---@field name_hl string: hl group of action name (default: TelescopeResultsFunction) +---@field column_indent number: number of left-most spaces before keybinds are shown (default: 4) +---@field line_padding number: row padding in top and bottom of float (default: 1) +---@field separator string: seperator string between mode, key bindings, and action (default: " -> ") +---@field close_with_action boolean: registered action will close keymap float (default: true) +---@field normal_hl string: winhl of "Normal" for keymap hints floating window (default: "TelescopePrompt") +---@field border_hl string: winhl of "Normal" for keymap borders (default: "TelescopePromptBorder") +---@field winblend number: pseudo-transparency of keymap hints floating window +action_generate.which_key = function(opts) + return function(prompt_bufnr) + actions.which_key(prompt_bufnr, opts) + end +end + +return action_generate |
