diff --git a/docs/manual/hacking/keybinds.md b/docs/manual/hacking/keybinds.md index 8c9e7233..3940466f 100644 --- a/docs/manual/hacking/keybinds.md +++ b/docs/manual/hacking/keybinds.md @@ -30,53 +30,12 @@ There are many settings available in the options. Please refer to the [documentation](https://notashelf.github.io/nvf/options.html#opt-vim.keymaps) to see a list of them. -**nvf** provides a list of helper commands, so that you don't have to write the +**nvf** provides a helper function, so that you don't have to write the mapping attribute sets every time: -- `mkBinding = key: action: desc:` - makes a basic binding, with `silent` set to - true. -- `mkExprBinding = key: action: desc:` - makes an expression binding, with - `lua`, `silent`, and `expr` set to true. -- `mkLuaBinding = key: action: desc:` - makes an expression binding, with `lua`, - and `silent` set to true. - -Do note that the Lua in these bindings is actual Lua, and not pasted into a -`:lua` command. Therefore, you should either pass in a function like -`require('someplugin').some_function`, without actually calling it, or you -should define your own functions, for example - -```lua -function() - require('someplugin').some_function() -end -``` - -Additionally, to not have to repeat the descriptions, there's another utility -function with its own set of functions: Utility function that takes two -attribute sets: - -- `{ someKey = "some_value" }` -- `{ someKey = { description = "Some Description"; }; }` - -and merges them into -`{ someKey = { value = "some_value"; description = "Some Description"; }; }` - -```nix -addDescriptionsToMappings = actualMappings: mappingDefinitions: -``` +- `mkKeymap`, which mimics neovim's `vim.keymap.set` function -This function can be used in combination with the same `mkBinding` functions as -above, except they only take two arguments - `binding` and `action`, and have -different names: - -- `mkSetBinding = binding: action:` - makes a basic binding, with `silent` set - to true. -- `mkSetExprBinding = binding: action:` - makes an expression binding, with - `lua`, `silent`, and `expr` set to true. -- `mkSetLuaBinding = binding: action:` - makes an expression binding, with - `lua`, and `silent` set to true. - -You can read the source code of some modules to see them in action, but their +You can read the source code of some modules to see them in action, but the usage should look something like this: ```nix @@ -90,20 +49,13 @@ in { # Mappings should always be inside an attrset called mappings mappings = { - # mkMappingOption is a helper function from lib, - # that takes a description (which will also appear in which-key), - # and a default mapping (which can be null) - toggleCurrentLine = mkMappingOption "Toggle current line comment" "gcc"; - toggleCurrentBlock = mkMappingOption "Toggle current block comment" "gbc"; - - toggleOpLeaderLine = mkMappingOption "Toggle line comment" "gc"; - toggleOpLeaderBlock = mkMappingOption "Toggle block comment" "gb"; - - toggleSelectedLine = mkMappingOption "Toggle selected comment" "gc"; - toggleSelectedBlock = mkMappingOption "Toggle selected block" "gb"; + workspaceDiagnostics = mkMappingOption "Workspace diagnostics [trouble]" "lwd"; + documentDiagnostics = mkMappingOption "Document diagnostics [trouble]" "ld"; + lspReferences = mkMappingOption "LSP References [trouble]" "lr"; + quickfix = mkMappingOption "QuickFix [trouble]" "xq"; + locList = mkMappingOption "LOCList [trouble]" "xl"; + symbols = mkMappingOption "Symbols [trouble]" "xs"; }; - - }; } ``` @@ -111,56 +63,27 @@ in { # config.nix { config, - pkgs, lib, + options, ... }: let - inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.binds) mkSetBinding; + inherit (lib.modules) mkIf; + inherit (lib.nvim.binds) mkKeymap; - cfg = config.vim.plugin; - self = import ./plugindefinition.nix {inherit lib;}; - mappingDefinitions = self.options.vim.plugin; + cfg = config.vim.plugin; - # addDescriptionsToMappings is a helper function from lib, - # that merges mapping values and their descriptions - # into one nice attribute set - mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; + keys = cfg.mappings; + inherit (options.vim.lsp.trouble) mappings; in { - config = mkIf (cfg.enable) { - # ... - vim.maps.normal = mkMerge [ - # mkSetBinding is another helper function from lib, - # that actually adds the mapping with a description. - (mkSetBinding mappings.findFiles " Telescope find_files") - (mkSetBinding mappings.liveGrep " Telescope live_grep") - (mkSetBinding mappings.buffers " Telescope buffers") - (mkSetBinding mappings.helpTags " Telescope help_tags") - (mkSetBinding mappings.open " Telescope") - - (mkSetBinding mappings.gitCommits " Telescope git_commits") - (mkSetBinding mappings.gitBufferCommits " Telescope git_bcommits") - (mkSetBinding mappings.gitBranches " Telescope git_branches") - (mkSetBinding mappings.gitStatus " Telescope git_status") - (mkSetBinding mappings.gitStash " Telescope git_stash") - - (mkIf config.vim.lsp.enable (mkMerge [ - (mkSetBinding mappings.lspDocumentSymbols " Telescope lsp_document_symbols") - (mkSetBinding mappings.lspWorkspaceSymbols " Telescope lsp_workspace_symbols") - - (mkSetBinding mappings.lspReferences " Telescope lsp_references") - (mkSetBinding mappings.lspImplementations " Telescope lsp_implementations") - (mkSetBinding mappings.lspDefinitions " Telescope lsp_definitions") - (mkSetBinding mappings.lspTypeDefinitions " Telescope lsp_type_definitions") - (mkSetBinding mappings.diagnostics " Telescope diagnostics") - ])) - - ( - mkIf config.vim.treesitter.enable - (mkSetBinding mappings.treesitter " Telescope treesitter") - ) + config = mkIf cfg.enable { + vim.keymaps = [ + (mkKeymap "n" keys.workspaceDiagnostics "Trouble toggle diagnostics" {desc = mappings.workspaceDiagnostics.description;}) + (mkKeymap "n" keys.documentDiagnostics "Trouble toggle diagnostics filter.buf=0" {desc = mappings.documentDiagnostics.description;}) + (mkKeymap "n" keys.lspReferences "Trouble toggle lsp_references" {desc = mappings.lspReferences.description;}) + (mkKeymap "n" keys.quickfix "Trouble toggle quickfix" {desc = mappings.quickfix.description;}) + (mkKeymap "n" keys.locList "Trouble toggle loclist" {desc = mappings.locList.description;}) + (mkKeymap "n" keys.symbols "Trouble toggle symbols" {desc = mappings.symbols.description;}) ]; - # ... }; } ``` diff --git a/docs/release-notes/rl-0.7.md b/docs/release-notes/rl-0.7.md index 1a23634c..4b778a0f 100644 --- a/docs/release-notes/rl-0.7.md +++ b/docs/release-notes/rl-0.7.md @@ -160,6 +160,7 @@ The changes are, in no particular order: [lz.n]: https://github.com/mrcjkb/lz.n - Add [lz.n] support and lazy-load some builtin plugins. +- Add simpler helper functions for making keymaps [jacekpoz](https://jacekpoz.pl): diff --git a/lib/binds.nix b/lib/binds.nix index 22bca735..bb40a89e 100644 --- a/lib/binds.nix +++ b/lib/binds.nix @@ -68,29 +68,7 @@ pushDownDefault = attr: mapAttrs (_: mkDefault) attr; - mkLznBinding = mode: key: action: desc: { - inherit mode desc key action; - }; - - mkLznExprBinding = mode: key: action: desc: { - inherit mode desc key action; - lua = true; - silent = true; - expr = true; - }; - - mkSetLznBinding = mode: binding: action: { - inherit action mode; - key = binding.value; - desc = binding.description; - }; - - mkSetLuaLznBinding = mode: binding: action: { - inherit action mode; - key = binding.value; - lua = true; - desc = binding.description; - }; + mkKeymap = mode: key: action: opt: opt // {inherit mode key action;}; }; in binds diff --git a/modules/plugins/comments/comment-nvim/config.nix b/modules/plugins/comments/comment-nvim/config.nix index c2c1a7e2..4c18f7e9 100644 --- a/modules/plugins/comments/comment-nvim/config.nix +++ b/modules/plugins/comments/comment-nvim/config.nix @@ -1,14 +1,14 @@ { + options, config, lib, ... }: let inherit (lib.modules) mkIf; - inherit (lib.nvim.binds) mkLznExprBinding mkLznBinding; + inherit (lib.nvim.binds) mkKeymap; cfg = config.vim.comments.comment-nvim; - self = import ./comment-nvim.nix {inherit lib;}; - inherit (self.options.vim.comments.comment-nvim) mappings; + inherit (options.vim.comments.comment-nvim) mappings; in { config = mkIf cfg.enable { vim.lazy.plugins.comment-nvim = { @@ -16,24 +16,28 @@ in { setupModule = "Comment"; inherit (cfg) setupOpts; keys = [ - (mkLznBinding ["n"] cfg.mappings.toggleOpLeaderLine "(comment_toggle_linewise)" mappings.toggleOpLeaderLine.description) - (mkLznBinding ["n"] cfg.mappings.toggleOpLeaderBlock "(comment_toggle_blockwise)" mappings.toggleOpLeaderBlock.description) - (mkLznExprBinding ["n"] cfg.mappings.toggleCurrentLine '' + (mkKeymap "n" cfg.mappings.toggleOpLeaderLine "(comment_toggle_linewise)" {desc = mappings.toggleOpLeaderLine.description;}) + (mkKeymap "n" cfg.mappings.toggleOpLeaderBlock "(comment_toggle_blockwise)" {desc = mappings.toggleOpLeaderBlock.description;}) + (mkKeymap "n" cfg.mappings.toggleCurrentLine '' function() return vim.api.nvim_get_vvar('count') == 0 and '(comment_toggle_linewise_current)' or '(comment_toggle_linewise_count)' end - '' - mappings.toggleCurrentLine.description) - (mkLznExprBinding ["n"] cfg.mappings.toggleCurrentBlock '' + '' { + expr = true; + desc = mappings.toggleCurrentLine.description; + }) + (mkKeymap ["n"] cfg.mappings.toggleCurrentBlock '' function() return vim.api.nvim_get_vvar('count') == 0 and '(comment_toggle_blockwise_current)' or '(comment_toggle_blockwise_count)' end - '' - mappings.toggleCurrentBlock.description) - (mkLznBinding ["x"] cfg.mappings.toggleSelectedLine "(comment_toggle_linewise_visual)" mappings.toggleSelectedLine.description) - (mkLznBinding ["x"] cfg.mappings.toggleSelectedBlock "(comment_toggle_blockwise_visual)" mappings.toggleSelectedBlock.description) + '' { + expr = true; + desc = mappings.toggleCurrentBlock.description; + }) + (mkKeymap "x" cfg.mappings.toggleSelectedLine "(comment_toggle_linewise_visual)" {desc = mappings.toggleSelectedLine.description;}) + (mkKeymap "x" cfg.mappings.toggleSelectedBlock "(comment_toggle_blockwise_visual)" {desc = mappings.toggleSelectedBlock.description;}) ]; }; }; diff --git a/modules/plugins/debugger/nvim-dap/config.nix b/modules/plugins/debugger/nvim-dap/config.nix index b99fb3d3..aa8f8386 100644 --- a/modules/plugins/debugger/nvim-dap/config.nix +++ b/modules/plugins/debugger/nvim-dap/config.nix @@ -1,4 +1,5 @@ { + options, config, lib, ... @@ -6,13 +7,11 @@ inherit (lib.strings) optionalString; inherit (lib.modules) mkIf mkMerge; inherit (lib.attrsets) mapAttrs; - inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding mkSetLuaLznBinding; + inherit (lib.nvim.binds) mkKeymap; inherit (lib.nvim.dag) entryAnywhere entryAfter; cfg = config.vim.debugger.nvim-dap; - self = import ./nvim-dap.nix {inherit lib;}; - mappingDefinitions = self.options.vim.debugger.nvim-dap.mappings; - mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; + inherit (options.vim.debugger.nvim-dap) mappings; in { config = mkMerge [ (mkIf cfg.enable { @@ -29,24 +28,24 @@ in { } // mapAttrs (_: v: (entryAfter ["nvim-dap"] v)) cfg.sources; - maps.normal = mkMerge [ - (mkSetLuaBinding mappings.continue "require('dap').continue") - (mkSetLuaBinding mappings.restart "require('dap').restart") - (mkSetLuaBinding mappings.terminate "require('dap').terminate") - (mkSetLuaBinding mappings.runLast "require('dap').run_last") + keymaps = [ + (mkKeymap "n" cfg.mappings.continue "require('dap').continue" {desc = mappings.continue.description;}) + (mkKeymap "n" cfg.mappings.restart "require('dap').restart" {desc = mappings.restart.description;}) + (mkKeymap "n" cfg.mappings.terminate "require('dap').terminate" {desc = mappings.terminate.description;}) + (mkKeymap "n" cfg.mappings.runLast "require('dap').run_last" {desc = mappings.runLast.description;}) - (mkSetLuaBinding mappings.toggleRepl "require('dap').repl.toggle") - (mkSetLuaBinding mappings.hover "require('dap.ui.widgets').hover") - (mkSetLuaBinding mappings.toggleBreakpoint "require('dap').toggle_breakpoint") + (mkKeymap "n" cfg.mappings.toggleRepl "require('dap').repl.toggle" {desc = mappings.toggleRepl.description;}) + (mkKeymap "n" cfg.mappings.hover "require('dap.ui.widgets').hover" {desc = mappings.hover.description;}) + (mkKeymap "n" cfg.mappings.toggleBreakpoint "require('dap').toggle_breakpoint" {desc = mappings.toggleBreakpoint.description;}) - (mkSetLuaBinding mappings.runToCursor "require('dap').run_to_cursor") - (mkSetLuaBinding mappings.stepInto "require('dap').step_into") - (mkSetLuaBinding mappings.stepOut "require('dap').step_out") - (mkSetLuaBinding mappings.stepOver "require('dap').step_over") - (mkSetLuaBinding mappings.stepBack "require('dap').step_back") + (mkKeymap "n" cfg.mappings.runToCursor "require('dap').run_to_cursor" {desc = mappings.runToCursor.description;}) + (mkKeymap "n" cfg.mappings.stepInto "require('dap').step_into" {desc = mappings.stepInto.description;}) + (mkKeymap "n" cfg.mappings.stepOut "require('dap').step_out" {desc = mappings.stepOut.description;}) + (mkKeymap "n" cfg.mappings.stepOver "require('dap').step_over" {desc = mappings.stepOver.description;}) + (mkKeymap "n" cfg.mappings.stepBack "require('dap').step_back" {desc = mappings.stepBack.description;}) - (mkSetLuaBinding mappings.goUp "require('dap').up") - (mkSetLuaBinding mappings.goDown "require('dap').down") + (mkKeymap "n" cfg.mappings.goUp "require('dap').up" {desc = mappings.goUp.description;}) + (mkKeymap "n" cfg.mappings.goDown "require('dap').down" {desc = mappings.goDown.description;}) ]; }; }) @@ -60,7 +59,7 @@ in { inherit (cfg.ui) setupOpts; keys = [ - (mkSetLuaLznBinding "n" mappings.toggleDapUI "function() require('dapui').toggle() end") + (mkKeymap "n" cfg.mappings.toggleDapUI "function() require('dapui').toggle() end" {desc = mappings.toggleDapUI.description;}) ]; }; diff --git a/modules/plugins/filetree/nvimtree/config.nix b/modules/plugins/filetree/nvimtree/config.nix index 7881fa79..e20a1458 100644 --- a/modules/plugins/filetree/nvimtree/config.nix +++ b/modules/plugins/filetree/nvimtree/config.nix @@ -6,7 +6,7 @@ }: let inherit (lib.strings) optionalString; inherit (lib.modules) mkIf; - inherit (lib.nvim.binds) mkLznBinding; + inherit (lib.nvim.binds) mkKeymap; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.binds) pushDownDefault; @@ -27,10 +27,10 @@ in { cmd = ["NvimTreeClipboard" "NvimTreeClose" "NvimTreeCollapse" "NvimTreeCollapseKeepBuffers" "NvimTreeFindFile" "NvimTreeFindFileToggle" "NvimTreeFocus" "NvimTreeHiTest" "NvimTreeOpen" "NvimTreeRefresh" "NvimTreeResize" "NvimTreeToggle"]; keys = [ - (mkLznBinding ["n"] cfg.mappings.toggle ":NvimTreeToggle" mappings.toggle.description) - (mkLznBinding ["n"] cfg.mappings.refresh ":NvimTreeRefresh" mappings.refresh.description) - (mkLznBinding ["n"] cfg.mappings.findFile ":NvimTreeFindFile" mappings.findFile.description) - (mkLznBinding ["n"] cfg.mappings.focus ":NvimTreeFocus" mappings.focus.description) + (mkKeymap "n" cfg.mappings.toggle ":NvimTreeToggle" {desc = mappings.toggle.description;}) + (mkKeymap "n" cfg.mappings.refresh ":NvimTreeRefresh" {desc = mappings.refresh.description;}) + (mkKeymap "n" cfg.mappings.findFile ":NvimTreeFindFile" {desc = mappings.findFile.description;}) + (mkKeymap "n" cfg.mappings.focus ":NvimTreeFocus" {desc = mappings.focus.description;}) ]; }; diff --git a/modules/plugins/lsp/trouble/config.nix b/modules/plugins/lsp/trouble/config.nix index b64a9151..c41dec60 100644 --- a/modules/plugins/lsp/trouble/config.nix +++ b/modules/plugins/lsp/trouble/config.nix @@ -5,12 +5,11 @@ ... }: let inherit (lib.modules) mkIf; - inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLznBinding pushDownDefault; + inherit (lib.nvim.binds) mkKeymap pushDownDefault; cfg = config.vim.lsp; - mappingDefinitions = options.vim.lsp.trouble.mappings; - mappings = addDescriptionsToMappings cfg.trouble.mappings mappingDefinitions; + inherit (options.vim.lsp.trouble) mappings; in { config = mkIf (cfg.enable && cfg.trouble.enable) { vim = { @@ -21,12 +20,12 @@ in { cmd = "Trouble"; keys = [ - (mkSetLznBinding "n" mappings.workspaceDiagnostics "Trouble toggle diagnostics") - (mkSetLznBinding "n" mappings.documentDiagnostics "Trouble toggle diagnostics filter.buf=0") - (mkSetLznBinding "n" mappings.lspReferences "Trouble toggle lsp_references") - (mkSetLznBinding "n" mappings.quickfix "Trouble toggle quickfix") - (mkSetLznBinding "n" mappings.locList "Trouble toggle loclist") - (mkSetLznBinding "n" mappings.symbols "Trouble toggle symbols") + (mkKeymap "n" cfg.trouble.mappings.workspaceDiagnostics "Trouble toggle diagnostics" {desc = mappings.workspaceDiagnostics.description;}) + (mkKeymap "n" cfg.trouble.mappings.documentDiagnostics "Trouble toggle diagnostics filter.buf=0" {desc = mappings.documentDiagnostics.description;}) + (mkKeymap "n" cfg.trouble.mappings.lspReferences "Trouble toggle lsp_references" {desc = mappings.lspReferences.description;}) + (mkKeymap "n" cfg.trouble.mappings.quickfix "Trouble toggle quickfix" {desc = mappings.quickfix.description;}) + (mkKeymap "n" cfg.trouble.mappings.locList "Trouble toggle loclist" {desc = mappings.locList.description;}) + (mkKeymap "n" cfg.trouble.mappings.symbols "Trouble toggle symbols" {desc = mappings.symbols.description;}) ]; }; diff --git a/modules/plugins/terminal/toggleterm/config.nix b/modules/plugins/terminal/toggleterm/config.nix index d3a71fbd..280f29d2 100644 --- a/modules/plugins/terminal/toggleterm/config.nix +++ b/modules/plugins/terminal/toggleterm/config.nix @@ -7,7 +7,7 @@ inherit (lib.lists) optional; inherit (lib.modules) mkIf; inherit (lib.meta) getExe; - inherit (lib.nvim.binds) mkLznBinding; + inherit (lib.nvim.binds) mkKeymap; inherit (lib.nvim.lua) toLuaObject; cfg = config.vim.terminal.toggleterm; @@ -19,7 +19,7 @@ in { package = "toggleterm-nvim"; cmd = ["ToggleTerm" "ToggleTermSendCurrentLine" "ToggleTermSendVisualLines" "ToggleTermSendVisualSelection" "ToggleTermSetName" "ToggleTermToggleAll"]; keys = - [(mkLznBinding ["n"] cfg.mappings.open "execute v:count . \"ToggleTerm\"" "Toggle terminal")] + [(mkKeymap "n" cfg.mappings.open "execute v:count . \"ToggleTerm\"" {desc = "Toggle terminal";})] ++ optional cfg.lazygit.enable { key = cfg.lazygit.mappings.open; mode = "n"; diff --git a/modules/plugins/utility/motion/leap/config.nix b/modules/plugins/utility/motion/leap/config.nix index 94a00c99..b9cb58d5 100644 --- a/modules/plugins/utility/motion/leap/config.nix +++ b/modules/plugins/utility/motion/leap/config.nix @@ -4,7 +4,7 @@ ... }: let inherit (lib.modules) mkIf mkDefault; - inherit (lib.nvim.binds) mkLznBinding; + inherit (lib.nvim.binds) mkKeymap; cfg = config.vim.utility.motion.leap; in { @@ -14,11 +14,11 @@ in { lazy.plugins.leap-nvim = { package = "leap-nvim"; keys = [ - (mkLznBinding ["n" "o" "x"] cfg.mappings.leapForwardTo "(leap-forward-to)" "Leap forward to") - (mkLznBinding ["n" "o" "x"] cfg.mappings.leapBackwardTo "(leap-backward-to)" "Leap backward to") - (mkLznBinding ["n" "o" "x"] cfg.mappings.leapForwardTill "(leap-forward-till)" "Leap forward till") - (mkLznBinding ["n" "o" "x"] cfg.mappings.leapBackwardTill "(leap-backward-till)" "Leap backward till") - (mkLznBinding ["n" "o" "x"] cfg.mappings.leapFromWindow "(leap-from-window)" "Leap from window") + (mkKeymap ["n" "o" "x"] cfg.mappings.leapForwardTo "(leap-forward-to)" {desc = "Leap forward to";}) + (mkKeymap ["n" "o" "x"] cfg.mappings.leapBackwardTo "(leap-backward-to)" {desc = "Leap backward to";}) + (mkKeymap ["n" "o" "x"] cfg.mappings.leapForwardTill "(leap-forward-till)" {desc = "Leap forward till";}) + (mkKeymap ["n" "o" "x"] cfg.mappings.leapBackwardTill "(leap-backward-till)" {desc = "Leap backward till";}) + (mkKeymap ["n" "o" "x"] cfg.mappings.leapFromWindow "(leap-from-window)" {desc = "Leap from window";}) ]; after = '' diff --git a/modules/plugins/utility/telescope/config.nix b/modules/plugins/utility/telescope/config.nix index c94fe901..76cfa8bd 100644 --- a/modules/plugins/utility/telescope/config.nix +++ b/modules/plugins/utility/telescope/config.nix @@ -5,15 +5,14 @@ ... }: let inherit (lib.modules) mkIf; - inherit (lib.nvim.binds) addDescriptionsToMappings; inherit (lib.strings) optionalString; inherit (lib.lists) optionals; - inherit (lib.nvim.binds) pushDownDefault mkSetLznBinding; + inherit (lib.nvim.binds) pushDownDefault mkKeymap; cfg = config.vim.telescope; - mappingDefinitions = options.vim.telescope.mappings; - mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; + keys = cfg.mappings; + inherit (options.vim.telescope) mappings; in { config = mkIf cfg.enable { vim = { @@ -34,39 +33,35 @@ in { keys = [ - (mkSetLznBinding "n" mappings.findFiles "Telescope find_files") - (mkSetLznBinding "n" mappings.liveGrep "Telescope live_grep") - (mkSetLznBinding "n" mappings.buffers "Telescope buffers") - (mkSetLznBinding "n" mappings.helpTags "Telescope help_tags") - (mkSetLznBinding "n" mappings.open "Telescope") - (mkSetLznBinding "n" mappings.resume "Telescope resume") + (mkKeymap "n" keys.findFiles "Telescope find_files" {desc = mappings.findFiles.description;}) + (mkKeymap "n" keys.liveGrep "Telescope live_grep" {desc = mappings.liveGrep.description;}) + (mkKeymap "n" keys.buffers "Telescope buffers" {desc = mappings.buffers.description;}) + (mkKeymap "n" keys.helpTags "Telescope help_tags" {desc = mappings.helpTags.description;}) + (mkKeymap "n" keys.open "Telescope" {desc = mappings.open.description;}) + (mkKeymap "n" keys.resume "Telescope resume" {desc = mappings.resume.description;}) - (mkSetLznBinding "n" mappings.gitCommits "Telescope git_commits") - (mkSetLznBinding "n" mappings.gitBufferCommits "Telescope git_bcommits") - (mkSetLznBinding "n" mappings.gitBranches "Telescope git_branches") - (mkSetLznBinding "n" mappings.gitStatus "Telescope git_status") - (mkSetLznBinding "n" mappings.gitStash "Telescope git_stash") + (mkKeymap "n" keys.gitCommits "Telescope git_commits" {desc = mappings.gitCommits.description;}) + (mkKeymap "n" keys.gitBufferCommits "Telescope git_bcommits" {desc = mappings.gitBufferCommits.description;}) + (mkKeymap "n" keys.gitBranches "Telescope git_branches" {desc = mappings.gitBranches.description;}) + (mkKeymap "n" keys.gitStatus "Telescope git_status" {desc = mappings.gitStatus.description;}) + (mkKeymap "n" keys.gitStash "Telescope git_stash" {desc = mappings.gitStash.description;}) ] ++ (optionals config.vim.lsp.enable [ - (mkSetLznBinding "n" mappings.lspDocumentSymbols "Telescope lsp_document_symbols") - (mkSetLznBinding "n" mappings.lspWorkspaceSymbols "Telescope lsp_workspace_symbols") + (mkKeymap "n" keys.lspDocumentSymbols "Telescope lsp_document_symbols" {desc = mappings.lspDocumentSymbols.description;}) + (mkKeymap "n" keys.lspWorkspaceSymbols "Telescope lsp_workspace_symbols" {desc = mappings.lspWorkspaceSymbols.description;}) - (mkSetLznBinding "n" mappings.lspReferences "Telescope lsp_references") - (mkSetLznBinding "n" mappings.lspImplementations "Telescope lsp_implementations") - (mkSetLznBinding "n" mappings.lspDefinitions "Telescope lsp_definitions") - (mkSetLznBinding "n" mappings.lspTypeDefinitions "Telescope lsp_type_definitions") - (mkSetLznBinding "n" mappings.diagnostics "Telescope diagnostics") + (mkKeymap "n" keys.lspReferences "Telescope lsp_references" {desc = mappings.lspReferences.description;}) + (mkKeymap "n" keys.lspImplementations "Telescope lsp_implementations" {desc = mappings.lspImplementations.description;}) + (mkKeymap "n" keys.lspDefinitions "Telescope lsp_definitions" {desc = mappings.lspDefinitions.description;}) + (mkKeymap "n" keys.lspTypeDefinitions "Telescope lsp_type_definitions" {desc = mappings.lspTypeDefinitions.description;}) + (mkKeymap "n" keys.diagnostics "Telescope diagnostics" {desc = mappings.diagnostics.description;}) ]) - ++ ( - optionals config.vim.treesitter.enable [ - (mkSetLznBinding "n" mappings.treesitter "Telescope treesitter") - ] - ) - ++ ( - optionals config.vim.projects.project-nvim.enable [ - (mkSetLznBinding "n" mappings.findProjects "Telescope projects") - ] - ); + ++ optionals config.vim.treesitter.enable [ + (mkKeymap "n" keys.treesitter "Telescope treesitter" {desc = mappings.treesitter.description;}) + ] + ++ optionals config.vim.projects.project-nvim.enable [ + (mkKeymap "n" keys.findProjects "Telescope projects" {desc = mappings.findProjects.description;}) + ]; }; binds.whichKey.register = pushDownDefault {