diff options
| author | Joe Neeman <joeneeman@gmail.com> | 2023-06-06 17:39:50 -0500 |
|---|---|---|
| committer | Joe Neeman <joeneeman@gmail.com> | 2023-06-07 08:48:19 -0500 |
| commit | ad2a0d109330952b6bc15fba43dffccce7f96a70 (patch) | |
| tree | 2764c3dc9086c04a5916084275ad9a8eaa3b4c09 | |
| parent | cdab3507eb5842a66ca04cad972a8901819da3e9 (diff) | |
| download | rust-ad2a0d109330952b6bc15fba43dffccce7f96a70.tar.gz rust-ad2a0d109330952b6bc15fba43dffccce7f96a70.zip | |
Add configurable proc-macro-srv path for diagnostics
| -rw-r--r-- | crates/rust-analyzer/src/cli/diagnostics.rs | 8 | ||||
| -rw-r--r-- | crates/rust-analyzer/src/cli/flags.rs | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/crates/rust-analyzer/src/cli/diagnostics.rs b/crates/rust-analyzer/src/cli/diagnostics.rs index 4006d023def..4306d721298 100644 --- a/crates/rust-analyzer/src/cli/diagnostics.rs +++ b/crates/rust-analyzer/src/cli/diagnostics.rs @@ -17,9 +17,15 @@ impl flags::Diagnostics { pub fn run(self) -> anyhow::Result<()> { let mut cargo_config = CargoConfig::default(); cargo_config.sysroot = Some(RustLibSource::Discover); + let with_proc_macro_server = if let Some(p) = &self.proc_macro_srv { + let path = vfs::AbsPathBuf::assert(std::env::current_dir()?.join(&p)); + ProcMacroServerChoice::Explicit(path) + } else { + ProcMacroServerChoice::Sysroot + }; let load_cargo_config = LoadCargoConfig { load_out_dirs_from_check: !self.disable_build_scripts, - with_proc_macro_server: ProcMacroServerChoice::Sysroot, + with_proc_macro_server, prefill_caches: false, }; let (host, _vfs, _proc_macro) = diff --git a/crates/rust-analyzer/src/cli/flags.rs b/crates/rust-analyzer/src/cli/flags.rs index 31012c01b95..c1ca03ceae4 100644 --- a/crates/rust-analyzer/src/cli/flags.rs +++ b/crates/rust-analyzer/src/cli/flags.rs @@ -92,6 +92,8 @@ xflags::xflags! { optional --disable-build-scripts /// Don't use expand proc macros. optional --disable-proc-macros + /// Run a custom proc-macro-srv binary. + optional --proc-macro-srv path: PathBuf } cmd ssr { @@ -189,6 +191,7 @@ pub struct Diagnostics { pub disable_build_scripts: bool, pub disable_proc_macros: bool, + pub proc_macro_srv: Option<PathBuf>, } #[derive(Debug)] |
