From 9a681ad09e2add96d47bf3f39cca8029f3bf09df Mon Sep 17 00:00:00 2001 From: andrew snelling <72226000+snelling-a@users.noreply.github.com> Date: Fri, 22 Nov 2024 13:51:30 +0100 Subject: [PATCH] fix(lsp): hover keymap (#31208) * fix: use function call in keymap * fix: test --- runtime/lua/vim/lsp.lua | 4 +++- test/functional/plugin/lsp_spec.lua | 13 ++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index c032d25cb1..6d29c9e4df 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -371,7 +371,9 @@ function lsp._set_defaults(client, bufnr) and is_empty_or_default(bufnr, 'keywordprg') and vim.fn.maparg('K', 'n', false, false) == '' then - vim.keymap.set('n', 'K', vim.lsp.buf.hover, { buffer = bufnr, desc = 'vim.lsp.buf.hover()' }) + vim.keymap.set('n', 'K', function() + vim.lsp.buf.hover() + end, { buffer = bufnr, desc = 'vim.lsp.buf.hover()' }) end end) if client:supports_method(ms.textDocument_diagnostic) then diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua index f14e24bb19..332a1a48bb 100644 --- a/test/functional/plugin/lsp_spec.lua +++ b/test/functional/plugin/lsp_spec.lua @@ -466,10 +466,17 @@ describe('LSP', function() true, exec_lua(function() local keymap --- @type table + local called = false + local origin = vim.lsp.buf.hover + vim.lsp.buf.hover = function() + called = true + end vim._with({ buf = _G.BUFFER }, function() keymap = vim.fn.maparg('K', 'n', false, true) end) - return keymap.callback == vim.lsp.buf.hover + keymap.callback() + vim.lsp.buf.hover = origin + return called end) ) client:stop() @@ -480,13 +487,13 @@ describe('LSP', function() eq('', get_buf_option('omnifunc')) eq('', get_buf_option('formatexpr')) eq( - '', + true, exec_lua(function() local keymap --- @type string vim._with({ buf = _G.BUFFER }, function() keymap = vim.fn.maparg('K', 'n', false, false) end) - return keymap + return keymap:match('') ~= nil end) ) end,