# Batch diagnostics updates \(\#35794\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/740686b8830a548b0f2d26b11ddaaefa2484346c)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 740686b8830a548b0f2d26b11ddaaefa2484346c

Requested commit: 740686b8830a548b0f2d26b11ddaaefa2484346c

Commit: 740686b8830a548b0f2d26b11ddaaefa2484346c

Tree: 140494212302084a56615ec45daf26e6f8308912

Author: Kirill Bulatov

Committer: GitHub

## Message

```
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
```

## Parents

- [a5c25e036696fd0519da25a70ed8e07d6672e87c](https://git.cafe/gitcafe/zed/commit/a5c25e036696fd0519da25a70ed8e07d6672e87c?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/740686b8830a548b0f2d26b11ddaaefa2484346c?format=markdown)
