aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp.lua
diff options
context:
space:
mode:
authorGregory Anders <greg@gpanders.com>2023-06-01 11:15:33 -0500
committerGregory Anders <greg@gpanders.com>2023-06-01 11:34:23 -0500
commitfb54e6980ea6fec218a11f118e97ef65f250395a (patch)
tree8279755b38e3772d3e39010b47034591fb402453 /runtime/lua/vim/lsp.lua
parentafb70eba8cdfc44b3633bdb91a1554b86b06a5d0 (diff)
downloadrneovim-fb54e6980ea6fec218a11f118e97ef65f250395a.tar.gz
rneovim-fb54e6980ea6fec218a11f118e97ef65f250395a.tar.bz2
rneovim-fb54e6980ea6fec218a11f118e97ef65f250395a.zip
feat(lsp): set client offset_encoding if server supports positionEncoding
If the server sends the positionEncoding capability in its initialization response, automatically set the client's offset_encoding to use the value provided.
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r--runtime/lua/vim/lsp.lua4
1 files changed, 4 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