diff --git a/crates/agent2/src/agent.rs b/crates/agent2/src/agent.rs index af740d9901..0a67e0ad32 100644 --- a/crates/agent2/src/agent.rs +++ b/crates/agent2/src/agent.rs @@ -333,7 +333,7 @@ impl NativeAgent { Err(err) => ( None, Some(RulesLoadingError { - message: format!("{err}").into(), + message: format!("{err:#}").into(), }), ), }; diff --git a/crates/channel/src/channel_store.rs b/crates/channel/src/channel_store.rs index 4ad156b9fb..921ffe11db 100644 --- a/crates/channel/src/channel_store.rs +++ b/crates/channel/src/channel_store.rs @@ -557,7 +557,7 @@ impl ChannelStore { }; cx.background_spawn(async move { task.await.map_err(|error| { - anyhow!("{error}").context(format!("failed to open channel {resource_name}")) + anyhow!(error).context(format!("failed to open channel {resource_name}")) }) }) } diff --git a/crates/client/src/client.rs b/crates/client/src/client.rs index f09c012a85..653e27b8d4 100644 --- a/crates/client/src/client.rs +++ b/crates/client/src/client.rs @@ -686,7 +686,7 @@ impl Client { } ConnectionResult::Result(r) => { if let Err(error) = r { - log::error!("failed to connect: {error}"); + log::error!("failed to connect: {error:?}"); } else { break; } diff --git a/crates/collab/src/db/queries/buffers.rs b/crates/collab/src/db/queries/buffers.rs index 2e6b4719d1..f3925be184 100644 --- a/crates/collab/src/db/queries/buffers.rs +++ b/crates/collab/src/db/queries/buffers.rs @@ -874,7 +874,7 @@ fn operation_from_storage( _format_version: i32, ) -> Result { let operation = - storage::Operation::decode(row.value.as_slice()).map_err(|error| anyhow!("{error}"))?; + storage::Operation::decode(row.value.as_slice()).map_err(|error| anyhow!(error))?; let version = version_from_storage(&operation.version); Ok(if operation.is_undo { proto::operation::Variant::Undo(proto::operation::Undo { diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index ef749ac9b7..2c1bf0a6c2 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -1312,7 +1312,7 @@ pub async fn handle_metrics(Extension(server): Extension>) -> Result let metric_families = prometheus::gather(); let encoded_metrics = encoder .encode_to_string(&metric_families) - .map_err(|err| anyhow!("{err}"))?; + .map_err(|err| anyhow!(err))?; Ok(encoded_metrics) } diff --git a/crates/dap_adapters/src/python.rs b/crates/dap_adapters/src/python.rs index a2bd934311..dc4cefc17e 100644 --- a/crates/dap_adapters/src/python.rs +++ b/crates/dap_adapters/src/python.rs @@ -1,5 +1,5 @@ use crate::*; -use anyhow::Context as _; +use anyhow::{Context as _, anyhow, bail}; use dap::{DebugRequest, StartDebuggingRequestArguments, adapters::DebugTaskDefinition}; use fs::RemoveOptions; use futures::{StreamExt, TryStreamExt}; @@ -24,7 +24,7 @@ use util::{ResultExt, maybe}; #[derive(Default)] pub(crate) struct PythonDebugAdapter { - debugpy_whl_base_path: OnceCell, String>>, + debugpy_whl_base_path: OnceCell>, } impl PythonDebugAdapter { @@ -91,13 +91,13 @@ impl PythonDebugAdapter { }) } - async fn fetch_wheel(delegate: &Arc) -> Result, String> { + async fn fetch_wheel(delegate: &Arc) -> Result> { let system_python = Self::system_python_name(delegate) .await - .ok_or_else(|| String::from("Could not find a Python installation"))?; + .ok_or_else(|| anyhow!("Could not find a Python installation"))?; let command: &OsStr = system_python.as_ref(); let download_dir = debug_adapters_dir().join(Self::ADAPTER_NAME).join("wheels"); - std::fs::create_dir_all(&download_dir).map_err(|e| e.to_string())?; + std::fs::create_dir_all(&download_dir)?; let installation_succeeded = util::command::new_smol_command(command) .args([ "-m", @@ -109,32 +109,27 @@ impl PythonDebugAdapter { download_dir.to_string_lossy().as_ref(), ]) .output() - .await - .map_err(|e| format!("{e}"))? + .await? .status .success(); if !installation_succeeded { - return Err("debugpy installation failed".into()); + bail!("debugpy installation failed"); } - let wheel_path = std::fs::read_dir(&download_dir) - .map_err(|e| e.to_string())? + let wheel_path = std::fs::read_dir(&download_dir)? .find_map(|entry| { entry.ok().filter(|e| { e.file_type().is_ok_and(|typ| typ.is_file()) && Path::new(&e.file_name()).extension() == Some("whl".as_ref()) }) }) - .ok_or_else(|| String::from("Did not find a .whl in {download_dir}"))?; + .ok_or_else(|| anyhow!("Did not find a .whl in {download_dir:?}"))?; util::archive::extract_zip( &debug_adapters_dir().join(Self::ADAPTER_NAME), - File::open(&wheel_path.path()) - .await - .map_err(|e| e.to_string())?, + File::open(&wheel_path.path()).await?, ) - .await - .map_err(|e| e.to_string())?; + .await?; Ok(Arc::from(wheel_path.path())) } @@ -198,20 +193,17 @@ impl PythonDebugAdapter { .await; } - async fn fetch_debugpy_whl( - &self, - delegate: &Arc, - ) -> Result, String> { + async fn fetch_debugpy_whl(&self, delegate: &Arc) -> Arc { self.debugpy_whl_base_path .get_or_init(|| async move { Self::maybe_fetch_new_wheel(delegate).await; - Ok(Arc::from( + Arc::from( debug_adapters_dir() .join(Self::ADAPTER_NAME) .join("debugpy") .join("adapter") .as_ref(), - )) + ) }) .await .clone() @@ -704,10 +696,7 @@ impl DebugAdapter for PythonDebugAdapter { ) .await; - let debugpy_path = self - .fetch_debugpy_whl(delegate) - .await - .map_err(|e| anyhow::anyhow!("{e}"))?; + let debugpy_path = self.fetch_debugpy_whl(delegate).await; if let Some(toolchain) = &toolchain { log::debug!( "Found debugpy in toolchain environment: {}", diff --git a/crates/languages/src/python.rs b/crates/languages/src/python.rs index 80ed6768d2..708952275d 100644 --- a/crates/languages/src/python.rs +++ b/crates/languages/src/python.rs @@ -1,4 +1,4 @@ -use anyhow::{Context as _, ensure}; +use anyhow::{Context as _, Error, ensure}; use anyhow::{Result, anyhow}; use async_trait::async_trait; use collections::HashMap; @@ -952,7 +952,7 @@ impl pet_core::os_environment::Environment for EnvironmentApi<'_> { } pub(crate) struct PyLspAdapter { - python_venv_base: OnceCell, String>>, + python_venv_base: OnceCell, Arc>>, } impl PyLspAdapter { const SERVER_NAME: LanguageServerName = LanguageServerName::new_static("pylsp"); @@ -994,13 +994,9 @@ impl PyLspAdapter { None } - async fn base_venv(&self, delegate: &dyn LspAdapterDelegate) -> Result, String> { + async fn base_venv(&self, delegate: &dyn LspAdapterDelegate) -> Result, Arc> { self.python_venv_base - .get_or_init(move || async move { - Self::ensure_venv(delegate) - .await - .map_err(|e| format!("{e}")) - }) + .get_or_init(move || async move { Self::ensure_venv(delegate).await.map_err(Arc::new) }) .await .clone() } @@ -1254,7 +1250,7 @@ impl LspAdapter for PyLspAdapter { } pub(crate) struct BasedPyrightLspAdapter { - python_venv_base: OnceCell, String>>, + python_venv_base: OnceCell, Arc>>, } impl BasedPyrightLspAdapter { @@ -1301,13 +1297,9 @@ impl BasedPyrightLspAdapter { None } - async fn base_venv(&self, delegate: &dyn LspAdapterDelegate) -> Result, String> { + async fn base_venv(&self, delegate: &dyn LspAdapterDelegate) -> Result, Arc> { self.python_venv_base - .get_or_init(move || async move { - Self::ensure_venv(delegate) - .await - .map_err(|e| format!("{e}")) - }) + .get_or_init(move || async move { Self::ensure_venv(delegate).await.map_err(Arc::new) }) .await .clone() }