fix(lsp): hover keymap (#31208)

* fix: use function call in keymap

* fix: test
This commit is contained in:
andrew snelling 2024-11-22 13:51:30 +01:00 committed by GitHub
parent bff07f6dd0
commit 9a681ad09e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 4 deletions

View File

@ -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

View File

@ -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,