aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandrew snelling <72226000+snelling-a@users.noreply.github.com>2024-11-22 13:51:30 +0100
committerGitHub <noreply@github.com>2024-11-22 12:51:30 +0000
commit9a681ad09e2add96d47bf3f39cca8029f3bf09df (patch)
tree36b33654d1b2ac813bf152a2c104e802e14af701
parentbff07f6dd0d8e58748f36670685dd6157a67976b (diff)
downloadrneovim-9a681ad09e2add96d47bf3f39cca8029f3bf09df.tar.gz
rneovim-9a681ad09e2add96d47bf3f39cca8029f3bf09df.tar.bz2
rneovim-9a681ad09e2add96d47bf3f39cca8029f3bf09df.zip
fix(lsp): hover keymap (#31208)
* fix: use function call in keymap * fix: test
-rw-r--r--runtime/lua/vim/lsp.lua4
-rw-r--r--test/functional/plugin/lsp_spec.lua13
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<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,