From de04ddd5116ce3825183a7034408999e9f4cff8c Mon Sep 17 00:00:00 2001 From: Dmitry Chumak Date: Sun, 16 Mar 2025 21:35:17 +0300 Subject: [PATCH] [nvim] func to add descriptions to keymap opts tables --- nvim/lua/funcs.lua | 11 +++++++++++ nvim/lua/lsp-config.lua | 8 ++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/nvim/lua/funcs.lua b/nvim/lua/funcs.lua index 3249165..0d2a8bb 100644 --- a/nvim/lua/funcs.lua +++ b/nvim/lua/funcs.lua @@ -6,3 +6,14 @@ function Contains(list, element) end return false end + +---comment +---@param list table +---@param key string +---@param value any +---@return table +function Append(list, key, value) + local new_list = {unpack(list)} + new_list[key] = value + return new_list +end diff --git a/nvim/lua/lsp-config.lua b/nvim/lua/lsp-config.lua index 1cc1ddf..37e7572 100644 --- a/nvim/lua/lsp-config.lua +++ b/nvim/lua/lsp-config.lua @@ -29,11 +29,11 @@ local on_attach = function(client, bufnr) -- See `:help vim.lsp.*` for documentation on any of the below functions local bufopts = { noremap = true, silent = true, buffer = bufnr } - vim.keymap.set("n", "gD", vim.lsp.buf.declaration, bufopts) - vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, Append(bufopts, "desc", 'Go to declaration')) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, Append(bufopts, "desc", "Go to definition")) vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts) - vim.keymap.set("n", "gi", vim.lsp.buf.implementation, bufopts) - vim.keymap.set("n", "gr", vim.lsp.buf.references, bufopts) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, Append(bufopts, "desc", "Go to implementation")) + vim.keymap.set("n", "gr", vim.lsp.buf.references, Append(bufopts, "desc", "Go to references")) vim.keymap.set("n", "", vim.lsp.buf.signature_help, bufopts) vim.keymap.set("n", "wa", vim.lsp.buf.add_workspace_folder, bufopts) vim.keymap.set("n", "wr", vim.lsp.buf.remove_workspace_folder, bufopts)