mirror of
https://github.com/neovim/neovim.git
synced 2025-12-15 19:05:40 +00:00
fix(lsp): account for changedtick version gap on modified reset (#29170)
Follow up to https://github.com/neovim/neovim/pull/28943 Fixes https://github.com/neovim/neovim/issues/29163
This commit is contained in:
committed by
GitHub
parent
b66106a46c
commit
2e6d295f79
@@ -2133,15 +2133,13 @@ describe('LSP', function()
|
||||
}, buf_lines(target_bufnr))
|
||||
end)
|
||||
it('skips the edit if the version of the edit is behind the local buffer ', function()
|
||||
local apply_edit_mocking_current_version = function(edit, versionedBuf)
|
||||
local apply_edit_mocking_current_version = function(edit)
|
||||
exec_lua(
|
||||
[[
|
||||
local args = {...}
|
||||
local versionedBuf = args[2]
|
||||
vim.lsp.util.apply_text_document_edit(args[1], nil, 'utf-16')
|
||||
]],
|
||||
edit,
|
||||
versionedBuf
|
||||
edit
|
||||
)
|
||||
end
|
||||
|
||||
@@ -2153,17 +2151,17 @@ describe('LSP', function()
|
||||
eq(baseText, buf_lines(target_bufnr))
|
||||
|
||||
-- Apply an edit for an old version, should skip
|
||||
apply_edit_mocking_current_version(
|
||||
text_document_edit(2),
|
||||
{ currentVersion = 7, bufnr = target_bufnr }
|
||||
)
|
||||
apply_edit_mocking_current_version(text_document_edit(1))
|
||||
eq(baseText, buf_lines(target_bufnr)) -- no change
|
||||
|
||||
-- Sanity check that next version to current does apply change
|
||||
apply_edit_mocking_current_version(
|
||||
text_document_edit(8),
|
||||
{ currentVersion = 7, bufnr = target_bufnr }
|
||||
)
|
||||
apply_edit_mocking_current_version(text_document_edit(exec_lua(
|
||||
[[
|
||||
local bufnr = ...
|
||||
return vim.b[bufnr].changedtick
|
||||
]],
|
||||
target_bufnr
|
||||
)))
|
||||
eq({
|
||||
'First ↥ 🤦 🦄 line of text',
|
||||
'2nd line of 语text',
|
||||
|
||||
Reference in New Issue
Block a user