fix(lsp): semantic token defer loading

Fixes #27424
This commit is contained in:
Lewis Russell 2024-02-11 18:07:04 +00:00 committed by Lewis Russell
parent 4682f158a0
commit 917172dd96
2 changed files with 7 additions and 4 deletions

View File

@ -644,6 +644,11 @@ M[ms.workspace_inlayHint_refresh] = function(err, result, ctx, config)
return vim.lsp.inlay_hint.on_refresh(err, result, ctx, config)
end
---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#semanticTokens_refreshRequest
M[ms.workspace_semanticTokens_refresh] = function(err, result, ctx, _config)
return vim.lsp.semantic_tokens._refresh(err, result, ctx)
end
-- Add boilerplate error validation and logging for all of these.
for k, fn in pairs(M) do
M[k] = function(err, result, ctx, config)

View File

@ -1,6 +1,5 @@
local api = vim.api
local bit = require('bit')
local handlers = require('vim.lsp.handlers')
local ms = require('vim.lsp.protocol').Methods
local util = require('vim.lsp.util')
local uv = vim.uv
@ -763,6 +762,7 @@ function M.highlight_token(token, bufnr, client_id, hl_group, opts)
})
end
--- @package
--- |lsp-handler| for the method `workspace/semanticTokens/refresh`
---
--- Refresh requests are sent by the server to indicate a project-wide change
@ -770,9 +770,7 @@ end
--- invalidate the current results of all buffers and automatically kick off a
--- new request for buffers that are displayed in a window. For those that aren't, a
--- the BufWinEnter event should take care of it next time it's displayed.
---
---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#semanticTokens_refreshRequest
handlers[ms.workspace_semanticTokens_refresh] = function(err, _, ctx)
function M._refresh(err, _, ctx)
if err then
return vim.NIL
end