From 32cf278a19c84c46a63224978d482cd14e04fdc4 Mon Sep 17 00:00:00 2001 From: Michael Lingelbach Date: Sun, 28 Mar 2021 02:05:52 -0700 Subject: lsp: fix utf-16 ranges to use second return value for incremental sync --- runtime/lua/vim/lsp/util.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index 942c6761c4..412be68396 100644 --- a/runtime/lua/vim/lsp/util.lua +++ b/runtime/lua/vim/lsp/util.lua @@ -373,13 +373,13 @@ function M.compute_diff(old_lines, new_lines, start_line_idx, end_line_idx) adj_end_char = #old_lines[#old_lines + end_line + 1] + end_char + 1 end - start_char = vim.str_utfindex(old_lines[start_line], start_char - 1) - adj_end_char = vim.str_utfindex(old_lines[#old_lines + end_line + 1], adj_end_char) + local _, utf16_start_char = vim.str_utfindex(old_lines[start_line], start_char - 1) + local _, utf16_end_char = vim.str_utfindex(old_lines[#old_lines + end_line + 1], adj_end_char) local result = { range = { - start = { line = start_line - 1, character = start_char}, - ["end"] = { line = adj_end_line, character = adj_end_char} + start = { line = start_line - 1, character = utf16_start_char}, + ["end"] = { line = adj_end_line, character = utf16_end_char} }, text = text, rangeLength = length + 1, -- cgit