commit 9a681ad09e2add96d47bf3f39cca8029f3bf09df
parent bff07f6dd0d8e58748f36670685dd6157a67976b
Author: andrew snelling <72226000+snelling-a@users.noreply.github.com>
Date: Fri, 22 Nov 2024 13:51:30 +0100
fix(lsp): hover keymap (#31208)
* fix: use function call in keymap
* fix: test
Diffstat:
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git 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
@@ -466,10 +466,17 @@ describe('LSP', function()
true,
exec_lua(function()
local keymap --- @type table<string,any>
+ 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('<Lua %d+: .+/runtime/lua/vim/lsp%.lua:%d+>') ~= nil
end)
)
end,