Merge pull request #2170 from zed-industries/fix-persistent-lsp-messages

Antonio Scandurra created

Fix LSP status messages persisting

Change summary

crates/client/src/http.rs                | 10 ++++++++--
crates/zed/src/languages/installation.rs |  2 ++
2 files changed, 10 insertions(+), 2 deletions(-)

Detailed changes

crates/client/src/http.rs 🔗

@@ -9,7 +9,7 @@ pub use isahc::{
     Error,
 };
 use smol::future::FutureExt;
-use std::sync::Arc;
+use std::{sync::Arc, time::Duration};
 pub use url::Url;
 
 pub type Request = isahc::Request<AsyncBody>;
@@ -41,7 +41,13 @@ pub trait HttpClient: Send + Sync {
 }
 
 pub fn client() -> Arc<dyn HttpClient> {
-    Arc::new(isahc::HttpClient::builder().build().unwrap())
+    Arc::new(
+        isahc::HttpClient::builder()
+            .connect_timeout(Duration::from_secs(5))
+            .low_speed_timeout(100, Duration::from_secs(5))
+            .build()
+            .unwrap(),
+    )
 }
 
 impl HttpClient for isahc::HttpClient {

crates/zed/src/languages/installation.rs 🔗

@@ -39,6 +39,7 @@ pub async fn npm_package_latest_version(name: &str) -> Result<String> {
     let output = smol::process::Command::new("npm")
         .args(["-fetch-retry-mintimeout", "2000"])
         .args(["-fetch-retry-maxtimeout", "5000"])
+        .args(["-fetch-timeout", "5000"])
         .args(["info", name, "--json"])
         .output()
         .await
@@ -64,6 +65,7 @@ pub async fn npm_install_packages(
     let output = smol::process::Command::new("npm")
         .args(["-fetch-retry-mintimeout", "2000"])
         .args(["-fetch-retry-maxtimeout", "5000"])
+        .args(["-fetch-timeout", "5000"])
         .arg("install")
         .arg("--prefix")
         .arg(directory)