diff options
| author | Stephan Seitz <stephan.seitz@fau.de> | 2022-12-14 22:27:23 +0100 |
|---|---|---|
| committer | Stephan Seitz <stephan.seitz@fau.de> | 2022-12-15 14:55:15 +0100 |
| commit | 507527711fdd8f701544024aeb1a9a068f986d89 (patch) | |
| tree | 6b37877da790bf8c1dabc6feeec408c7c5473e0a /lua/nvim-treesitter/incremental_selection.lua | |
| parent | highlights(lua): use @method.call (diff) | |
| download | nvim-treesitter-507527711fdd8f701544024aeb1a9a068f986d89.tar nvim-treesitter-507527711fdd8f701544024aeb1a9a068f986d89.tar.gz nvim-treesitter-507527711fdd8f701544024aeb1a9a068f986d89.tar.bz2 nvim-treesitter-507527711fdd8f701544024aeb1a9a068f986d89.tar.lz nvim-treesitter-507527711fdd8f701544024aeb1a9a068f986d89.tar.xz nvim-treesitter-507527711fdd8f701544024aeb1a9a068f986d89.tar.zst nvim-treesitter-507527711fdd8f701544024aeb1a9a068f986d89.zip | |
feat: allow to set keymappings to `false`
Fixes #3954
Diffstat (limited to 'lua/nvim-treesitter/incremental_selection.lua')
| -rw-r--r-- | lua/nvim-treesitter/incremental_selection.lua | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/lua/nvim-treesitter/incremental_selection.lua b/lua/nvim-treesitter/incremental_selection.lua index 5deaaf84e..4d4f2aad6 100644 --- a/lua/nvim-treesitter/incremental_selection.lua +++ b/lua/nvim-treesitter/incremental_selection.lua @@ -130,33 +130,37 @@ local FUNCTION_DESCRIPTIONS = { function M.attach(bufnr) local config = configs.get_module "incremental_selection" for funcname, mapping in pairs(config.keymaps) do - local mode - local rhs - if funcname == "init_selection" then - mode = "n" - rhs = M[funcname] - else - mode = "x" - -- We need to move to command mode to access marks '< (visual area start) and '> (visual area end) which are not - -- properly accessible in visual mode. - rhs = string.format(":lua require'nvim-treesitter.incremental_selection'.%s()<CR>", funcname) + if mapping then + local mode + local rhs + if funcname == "init_selection" then + mode = "n" + rhs = M[funcname] + else + mode = "x" + -- We need to move to command mode to access marks '< (visual area start) and '> (visual area end) which are not + -- properly accessible in visual mode. + rhs = string.format(":lua require'nvim-treesitter.incremental_selection'.%s()<CR>", funcname) + end + vim.keymap.set( + mode, + mapping, + rhs, + { buffer = bufnr, silent = true, noremap = true, desc = FUNCTION_DESCRIPTIONS[funcname] } + ) end - vim.keymap.set( - mode, - mapping, - rhs, - { buffer = bufnr, silent = true, noremap = true, desc = FUNCTION_DESCRIPTIONS[funcname] } - ) end end function M.detach(bufnr) local config = configs.get_module "incremental_selection" for f, mapping in pairs(config.keymaps) do - if f == "init_selection" then - vim.keymap.del("n", mapping, { buffer = bufnr }) - else - vim.keymap.del("x", mapping, { buffer = bufnr }) + if mapping then + if f == "init_selection" then + vim.keymap.del("n", mapping, { buffer = bufnr }) + else + vim.keymap.del("x", mapping, { buffer = bufnr }) + end end end end |
