aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-03-28 03:11:12 -0700
committerMichael Lingelbach <m.j.lbach@gmail.com>2021-03-30 14:14:09 -0700
commit0cadab14123a492f6a02f9580315596d604f9a9d (patch)
treef43977481c618ecd285f007d9dd987c2ee294512 /runtime/lua/vim/lsp.lua
parent2ed5a776028f50177526a3fe0d7650282316195d (diff)
downloadrneovim-0cadab14123a492f6a02f9580315596d604f9a9d.tar.gz
rneovim-0cadab14123a492f6a02f9580315596d604f9a9d.tar.bz2
rneovim-0cadab14123a492f6a02f9580315596d604f9a9d.zip
lsp: use utf-8 when utf-16 not requested
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r--runtime/lua/vim/lsp.lua11
1 files changed, 7 insertions, 4 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index 4c453df3f6..4110bd1910 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -850,20 +850,23 @@ do
end
util.buf_versions[bufnr] = changedtick
- -- Lazy initialize these because clients may not even need them.
- local incremental_changes = once(function(client)
+
+ local incremental_changes = function(client)
local lines = nvim_buf_get_lines(bufnr, 0, -1, true)
local startline = math.min(firstline + 1, math.min(#client._cached_buffers[bufnr], #lines))
local endline = math.min(-(#lines - new_lastline), -1)
- local incremental_change = vim.lsp.util.compute_diff(client._cached_buffers[bufnr], lines, startline, endline)
+ local incremental_change = vim.lsp.util.compute_diff(
+ client._cached_buffers[bufnr], lines, startline, endline, client.offset_encoding or "utf-16")
client._cached_buffers[bufnr] = lines
return incremental_change
- end)
+ end
+
local full_changes = once(function()
return {
text = buf_get_full_text(bufnr);
};
end)
+
local uri = vim.uri_from_bufnr(bufnr)
for_each_buffer_client(bufnr, function(client)
local allow_incremental_sync = if_nil(client.config.flags.allow_incremental_sync, true)