mirror of
https://github.com/neovim/neovim.git
synced 2025-12-07 15:14:04 +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
@@ -502,6 +502,11 @@ function M.apply_text_document_edit(text_document_edit, index, offset_encoding)
|
||||
should_check_version = false
|
||||
end
|
||||
|
||||
-- changedtick increases on save but server only receives version updates
|
||||
-- on line changes (via didChange)
|
||||
-- This allows a gap of 1 to account for the servers outdated view
|
||||
local version_offset = vim.b[bufnr].modified and 0 or 1
|
||||
|
||||
-- `VersionedTextDocumentIdentifier`s version may be null
|
||||
-- https://microsoft.github.io/language-server-protocol/specification#versionedTextDocumentIdentifier
|
||||
if
|
||||
@@ -509,7 +514,7 @@ function M.apply_text_document_edit(text_document_edit, index, offset_encoding)
|
||||
and (
|
||||
text_document.version
|
||||
and text_document.version > 0
|
||||
and vim.b[bufnr].changedtick > text_document.version
|
||||
and vim.b[bufnr].changedtick > (text_document.version + version_offset)
|
||||
)
|
||||
then
|
||||
print('Buffer ', text_document.uri, ' newer than edits.')
|
||||
|
||||
Reference in New Issue
Block a user