diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index fe39dc0914..6387fc65d2 100644 --- a/crates/project/src/lsp_store.rs +++ b/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,