diff options
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r-- | runtime/lua/vim/lsp.lua | 4 | ||||
-rw-r--r-- | runtime/lua/vim/lsp/protocol.lua | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index d64ed0b5a3..baf8b5c1a8 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -1344,6 +1344,10 @@ function lsp.start_client(config) assert(result.capabilities, "initialize result doesn't contain capabilities") client.server_capabilities = protocol.resolve_capabilities(client.server_capabilities) + if client.server_capabilities.positionEncoding then + client.offset_encoding = client.server_capabilities.positionEncoding + end + if next(config.settings) then client.notify('workspace/didChangeConfiguration', { settings = config.settings }) end diff --git a/runtime/lua/vim/lsp/protocol.lua b/runtime/lua/vim/lsp/protocol.lua index a28ff407b7..7e49a572e7 100644 --- a/runtime/lua/vim/lsp/protocol.lua +++ b/runtime/lua/vim/lsp/protocol.lua @@ -634,6 +634,13 @@ export interface WorkspaceClientCapabilities { --- capabilities. function protocol.make_client_capabilities() return { + general = { + positionEncodings = { + 'utf-8', + 'utf-16', + 'utf-32', + }, + }, textDocument = { semanticTokens = { dynamicRegistration = false, |