diff --git a/lua/snacks/picker/source/lsp/init.lua b/lua/snacks/picker/source/lsp/init.lua index a5bf2733..024c6273 100644 --- a/lua/snacks/picker/source/lsp/init.lua +++ b/lua/snacks/picker/source/lsp/init.lua @@ -43,7 +43,7 @@ local function wrap(client) if client.wrapped then return client end - local methods = { "request", "supports_method", "cancel_request" } + local methods = { "request", "supports_method", "cancel_request", "notify" } -- old style return setmetatable({ wrapped = true }, { __index = function(_, k) diff --git a/lua/snacks/words.lua b/lua/snacks/words.lua index ab64c185..6303fb5a 100644 --- a/lua/snacks/words.lua +++ b/lua/snacks/words.lua @@ -106,10 +106,17 @@ function M.is_enabled(opts) if not config.filter(buf) then return false end - local clients = (vim.lsp.get_clients or vim.lsp.get_active_clients)({ bufnr = buf }) - clients = vim.tbl_filter(function(client) - return client.supports_method("textDocument/documentHighlight", { bufnr = buf }) - end, clients) + + local clients = {} ---@type vim.lsp.Client[] + if vim.fn.has("nvim-0.11") == 1 then + clients = vim.lsp.get_clients({ bufnr = buf, method = "textDocument/documentHighlight" }) + else + clients = (vim.lsp.get_clients or vim.lsp.get_active_clients)({ bufnr = buf }) + clients = vim.tbl_filter(function(client) + return client.supports_method("textDocument/documentHighlight", { bufnr = buf }) + end, clients) + end + return #clients > 0 end