SSH Remoting: Fix diagnostic summary syncing (#19923)

Conrad Irwin and Mikayla created

Co-Authored-By: Mikayla <mikayla@zed.dev>

Release Notes:

- SSH Remoting: Fix diagnostics summary over collab

Co-authored-by: Mikayla <mikayla@zed.dev>

Change summary

crates/project/src/lsp_store.rs | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

Detailed changes

crates/project/src/lsp_store.rs 🔗

@@ -4044,6 +4044,20 @@ impl LspStore {
                         .or_default()
                         .insert(server_id, summary);
                 }
+                if let Some((downstream_client, project_id)) = &this.downstream_client {
+                    downstream_client
+                        .send(proto::UpdateDiagnosticSummary {
+                            project_id: *project_id,
+                            worktree_id: worktree_id.to_proto(),
+                            summary: Some(proto::DiagnosticSummary {
+                                path: project_path.path.to_string_lossy().to_string(),
+                                language_server_id: server_id.0 as u64,
+                                error_count: summary.error_count as u32,
+                                warning_count: summary.warning_count as u32,
+                            }),
+                        })
+                        .log_err();
+                }
                 cx.emit(LspStoreEvent::DiagnosticsUpdated {
                     language_server_id: LanguageServerId(message.language_server_id as usize),
                     path: project_path,
@@ -5915,7 +5929,6 @@ impl LspStore {
                     let adapter = adapter.clone();
                     if let Some(this) = this.upgrade() {
                         adapter.process_diagnostics(&mut params);
-                        // Everything else has to be on the server, Can we make it on the client?
                         this.update(&mut cx, |this, cx| {
                             this.update_diagnostics(
                                 server_id,