diff --git a/crates/rust-analyzer/src/cli/load_cargo.rs b/crates/rust-analyzer/src/cli/load_cargo.rs index 32a9ee339a..018be70eeb 100644 --- a/crates/rust-analyzer/src/cli/load_cargo.rs +++ b/crates/rust-analyzer/src/cli/load_cargo.rs @@ -73,9 +73,7 @@ pub(crate) fn load_cargo( let proc_macro_client = if !with_proc_macro { ProcMacroClient::dummy() } else { - let mut path = std::env::current_exe()?; - path.pop(); - path.push("rust-analyzer"); + let path = std::env::current_exe()?; ProcMacroClient::extern_process(&path, &["proc-macro"]).unwrap() }; let host = load(&source_roots, ws, &mut vfs, receiver, extern_dirs, &proc_macro_client); diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 2b45f13103..3597a14e36 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -134,9 +134,7 @@ impl Config { match get::(value, "/procMacro/enabled") { Some(true) => { - if let Ok(mut path) = std::env::current_exe() { - path.pop(); - path.push("rust-analyzer"); + if let Ok(path) = std::env::current_exe() { self.proc_macro_srv = Some((path.to_string_lossy().to_string(), vec!["proc-macro".to_string()])); } }