ZIm/crates/diagnostics/src
Kirill Bulatov 740686b883
Batch diagnostics updates (#35794)
Diagnostics updates were programmed in Zed based off the r-a LSP push
diagnostics, with all related updates happening per file.

https://github.com/zed-industries/zed/pull/19230 and especially
https://github.com/zed-industries/zed/pull/32269 brought in pull
diagnostics that could produce results for thousands files
simultaneously.

It was noted and addressed on the local side in
https://github.com/zed-industries/zed/pull/34022 but the remote side was
still not adjusted properly.

This PR 

* removes redundant diagnostics pull updates on remote clients, as
buffer diagnostics are updated via buffer sync operations separately
* batches all diagnostics-related updates and proto messages, so
multiple diagnostic summaries (per file) could be sent at once,
specifically, 1 (potentially large) diagnostics summary update instead
of N*10^3 small ones.

Buffer updates are still sent per buffer and not updated, as happening
separately and not offending the collab traffic that much.

Release Notes:

- Improved diagnostics performance in the collaborative mode
2025-08-07 14:45:41 +00:00
..
diagnostic_renderer.rs editor: Improve minimap performance (#33067) 2025-07-15 00:29:27 +03:00
diagnostics.rs Batch diagnostics updates (#35794) 2025-08-07 14:45:41 +00:00
diagnostics_tests.rs Reduce amount of allocations in RustLsp label handling (#35786) 2025-08-07 13:24:29 +00:00
items.rs lsp: Fix workspace diagnostics lag & add streaming support (#34022) 2025-07-15 18:41:45 +03:00
toolbar_controls.rs Use rust-analyzer's flycheck as source of cargo diagnostics (#29779) 2025-05-02 10:07:51 +03:00