From 8b0f2ac1b90f96222829705eaa8790a90714f585 Mon Sep 17 00:00:00 2001 From: Selimaj Dev Date: Sun, 24 May 2026 07:08:23 +0200 Subject: [PATCH] Working req res --- crates/analyzer/src/rust_analyzer.rs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/crates/analyzer/src/rust_analyzer.rs b/crates/analyzer/src/rust_analyzer.rs index d84d634..b868349 100644 --- a/crates/analyzer/src/rust_analyzer.rs +++ b/crates/analyzer/src/rust_analyzer.rs @@ -135,18 +135,25 @@ impl RustAnalyzer { let pending = self.pending.clone(); tokio::spawn(async move { - let raw_string = read_lsp_message(&mut *stdout.lock().await).await.unwrap(); + loop { + let raw_string = read_lsp_message(&mut *stdout.lock().await).await.unwrap(); - let envelope: JsonRpcResponse = serde_json::from_str(&raw_string).unwrap(); + let envelope: JsonRpcResponse = + serde_json::from_str(&raw_string).unwrap(); - pending - .lock() - .await - .get(&envelope.id.unwrap()) - .unwrap() - .send(raw_string) - .await - .unwrap(); + pending + .lock() + .await + .remove(&envelope.id.unwrap()) + .unwrap() + .send(raw_string) + .await + .unwrap(); + + if pending.lock().await.len() == 0 { + break; + } + } }); }