lsp: Fill in version for SnippetEdit from drive (#17360)

Related to #16680 

Release Notes:

- N/A
This commit is contained in:
Piotr Osiewicz 2024-09-04 19:31:32 +02:00 committed by GitHub
parent 30b2133336
commit 8d4bdd6dc6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5715,11 +5715,10 @@ impl LspStore {
} }
} }
if !snippet_edits.is_empty() { if !snippet_edits.is_empty() {
if let Some(buffer_version) = op.text_document.version { let buffer_id = buffer_to_edit.read(cx).remote_id();
let buffer_id = buffer_to_edit.read(cx).remote_id(); let version = if let Some(buffer_version) = op.text_document.version
// Check if the edit that triggered that edit has been made by this participant. {
let most_recent_edit = this this.buffer_snapshots
.buffer_snapshots
.get(&buffer_id) .get(&buffer_id)
.and_then(|server_to_snapshots| { .and_then(|server_to_snapshots| {
let all_snapshots = server_to_snapshots let all_snapshots = server_to_snapshots
@ -5731,17 +5730,22 @@ impl LspStore {
.ok() .ok()
.and_then(|index| all_snapshots.get(index)) .and_then(|index| all_snapshots.get(index))
}) })
.and_then(|lsp_snapshot| { .map(|lsp_snapshot| lsp_snapshot.snapshot.version())
let version = lsp_snapshot.snapshot.version(); } else {
version.iter().max_by_key(|timestamp| timestamp.value) Some(buffer_to_edit.read(cx).saved_version())
}); };
if let Some(most_recent_edit) = most_recent_edit {
cx.emit(LspStoreEvent::SnippetEdit { let most_recent_edit = version.and_then(|version| {
buffer_id, version.iter().max_by_key(|timestamp| timestamp.value)
edits: snippet_edits, });
most_recent_edit, // Check if the edit that triggered that edit has been made by this participant.
});
} if let Some(most_recent_edit) = most_recent_edit {
cx.emit(LspStoreEvent::SnippetEdit {
buffer_id,
edits: snippet_edits,
most_recent_edit,
});
} }
} }