diff options
| author | bors <bors@rust-lang.org> | 2024-08-12 12:34:31 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-08-12 12:34:31 +0000 |
| commit | e66f3db9fa890fa6eb85ff5d55ff837455f81124 (patch) | |
| tree | b1bd743d9954d77ff099aa4021478ce5ff46ee7f /src | |
| parent | ff63552892f8a45d1e85aea35eed2d50231b343a (diff) | |
| parent | 1b983e33c694dd279ecd892e75e18b0a8c790593 (diff) | |
| download | rust-e66f3db9fa890fa6eb85ff5d55ff837455f81124.tar.gz rust-e66f3db9fa890fa6eb85ff5d55ff837455f81124.zip | |
Auto merge of #17864 - Veykril:lsif, r=Veykril
fix: Build and run build scripts in lsif command
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/rust-analyzer/crates/load-cargo/src/lib.rs | 10 | ||||
| -rw-r--r-- | src/tools/rust-analyzer/crates/rust-analyzer/src/cli/lsif.rs | 11 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/tools/rust-analyzer/crates/load-cargo/src/lib.rs b/src/tools/rust-analyzer/crates/load-cargo/src/lib.rs index db4e10f7ba1..abad7e9f7d2 100644 --- a/src/tools/rust-analyzer/crates/load-cargo/src/lib.rs +++ b/src/tools/rust-analyzer/crates/load-cargo/src/lib.rs @@ -25,6 +25,7 @@ use vfs::{ AbsPath, AbsPathBuf, VfsPath, }; +#[derive(Debug)] pub struct LoadCargoConfig { pub load_out_dirs_from_check: bool, pub with_proc_macro_server: ProcMacroServerChoice, @@ -68,6 +69,7 @@ pub fn load_workspace( Box::new(loader) }; + tracing::debug!(?load_config, "LoadCargoConfig"); let proc_macro_server = match &load_config.with_proc_macro_server { ProcMacroServerChoice::Sysroot => ws .find_sysroot_proc_macro_srv() @@ -80,6 +82,14 @@ pub fn load_workspace( Err((anyhow::format_err!("proc macro server disabled"), false)) } }; + match &proc_macro_server { + Ok(server) => { + tracing::info!(path=%server.path(), "Proc-macro server started") + } + Err((e, _)) => { + tracing::info!(%e, "Failed to start proc-macro server") + } + } let (crate_graph, proc_macros) = ws.to_crate_graph( &mut |path: &AbsPath| { diff --git a/src/tools/rust-analyzer/crates/rust-analyzer/src/cli/lsif.rs b/src/tools/rust-analyzer/crates/rust-analyzer/src/cli/lsif.rs index e67ddb9d060..016f0edc2dd 100644 --- a/src/tools/rust-analyzer/crates/rust-analyzer/src/cli/lsif.rs +++ b/src/tools/rust-analyzer/crates/rust-analyzer/src/cli/lsif.rs @@ -276,7 +276,7 @@ impl flags::Lsif { eprintln!("Generating LSIF started..."); let now = Instant::now(); let cargo_config = - CargoConfig { sysroot: Some(RustLibSource::Discover), ..Default::default() }; + &CargoConfig { sysroot: Some(RustLibSource::Discover), ..Default::default() }; let no_progress = &|_| (); let load_cargo_config = LoadCargoConfig { load_out_dirs_from_check: true, @@ -284,10 +284,11 @@ impl flags::Lsif { prefill_caches: false, }; let path = AbsPathBuf::assert_utf8(env::current_dir()?.join(self.path)); - let manifest = ProjectManifest::discover_single(&path)?; + let root = ProjectManifest::discover_single(&path)?; + let mut workspace = ProjectWorkspace::load(root, cargo_config, no_progress)?; - let workspace = ProjectWorkspace::load(manifest, &cargo_config, no_progress)?; - let root = workspace.workspace_root().to_owned(); + let build_scripts = workspace.run_build_scripts(cargo_config, no_progress)?; + workspace.set_build_scripts(build_scripts); let (db, vfs, _proc_macro) = load_workspace(workspace, &cargo_config.extra_env, &load_cargo_config)?; @@ -295,7 +296,7 @@ impl flags::Lsif { let db = host.raw_database(); let analysis = host.analysis(); - let si = StaticIndex::compute(&analysis, &root.into()); + let si = StaticIndex::compute(&analysis, &path.clone().into()); let mut lsif = LsifManager::new(&analysis, db, &vfs); lsif.add_vertex(lsif::Vertex::MetaData(lsif::MetaData { |
