Update LSP sync patch.
This commit is contained in:
parent
f938fd473e
commit
2ba9a7db29
25
16669.patch
25
16669.patch
@ -1,19 +1,8 @@
|
|||||||
From 0500ace6e138c3fcbd15b951f6af76a45e80f0ab Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rishikesh Vaishnav <rishhvaishnav@gmail.com>
|
|
||||||
Date: Wed, 15 Dec 2021 18:08:10 +0000
|
|
||||||
Subject: [PATCH] fix(lsp): general fix/simplification of incremental sync
|
|
||||||
|
|
||||||
---
|
|
||||||
runtime/lua/vim/lsp/sync.lua | 125 ++++----
|
|
||||||
src/nvim/lua/stdlib.c | 4 +-
|
|
||||||
.../plugin/lsp/incremental_sync_spec.lua | 275 +++++++++++++++++-
|
|
||||||
3 files changed, 332 insertions(+), 72 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/runtime/lua/vim/lsp/sync.lua b/runtime/lua/vim/lsp/sync.lua
|
diff --git a/runtime/lua/vim/lsp/sync.lua b/runtime/lua/vim/lsp/sync.lua
|
||||||
index 5df2a4d144d2..ce3c8c1b2e5d 100644
|
index 5df2a4d144d2..8d08d2763bdc 100644
|
||||||
--- a/runtime/lua/vim/lsp/sync.lua
|
--- a/runtime/lua/vim/lsp/sync.lua
|
||||||
+++ b/runtime/lua/vim/lsp/sync.lua
|
+++ b/runtime/lua/vim/lsp/sync.lua
|
||||||
@@ -93,30 +93,35 @@ end
|
@@ -93,30 +93,38 @@ end
|
||||||
-- utf-8 index and either the utf-16, or utf-32 index.
|
-- utf-8 index and either the utf-16, or utf-32 index.
|
||||||
---@param line string the line to index into
|
---@param line string the line to index into
|
||||||
---@param byte integer the byte idx
|
---@param byte integer the byte idx
|
||||||
@ -43,9 +32,11 @@ index 5df2a4d144d2..ce3c8c1b2e5d 100644
|
|||||||
- if byte == 1 or #line == 0 then
|
- if byte == 1 or #line == 0 then
|
||||||
- char = byte
|
- char = byte
|
||||||
+
|
+
|
||||||
|
+ -- optimize for first byte case
|
||||||
|
+ if byte == 1 then
|
||||||
|
+ char = 1
|
||||||
-- Called in the case of extending an empty line "" -> "a"
|
-- Called in the case of extending an empty line "" -> "a"
|
||||||
- elseif byte == #line + 1 then
|
elseif byte == #line + 1 then
|
||||||
+ if byte == #line + 1 then
|
|
||||||
char = compute_line_length(line, offset_encoding) + 1
|
char = compute_line_length(line, offset_encoding) + 1
|
||||||
else
|
else
|
||||||
- -- Modifying line, find the nearest utf codepoint
|
- -- Modifying line, find the nearest utf codepoint
|
||||||
@ -66,7 +57,7 @@ index 5df2a4d144d2..ce3c8c1b2e5d 100644
|
|||||||
return byte, char
|
return byte, char
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -157,18 +162,7 @@ local function compute_start_range(prev_lines, curr_lines, firstline, lastline,
|
@@ -157,18 +165,7 @@ local function compute_start_range(prev_lines, curr_lines, firstline, lastline,
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Convert byte to codepoint if applicable
|
-- Convert byte to codepoint if applicable
|
||||||
@ -86,7 +77,7 @@ index 5df2a4d144d2..ce3c8c1b2e5d 100644
|
|||||||
|
|
||||||
-- Return the start difference (shared for new and prev lines)
|
-- Return the start difference (shared for new and prev lines)
|
||||||
return { line_idx = firstline, byte_idx = byte_idx, char_idx = char_idx }
|
return { line_idx = firstline, byte_idx = byte_idx, char_idx = char_idx }
|
||||||
@@ -209,51 +203,48 @@ local function compute_end_range(prev_lines, curr_lines, start_range, firstline,
|
@@ -209,51 +206,48 @@ local function compute_end_range(prev_lines, curr_lines, start_range, firstline,
|
||||||
local prev_line_length = #prev_line
|
local prev_line_length = #prev_line
|
||||||
local curr_line_length = #curr_line
|
local curr_line_length = #curr_line
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user