Skip to content

Commit

Permalink
Auto merge of rust-lang#17864 - Veykril:lsif, r=Veykril
Browse files Browse the repository at this point in the history
fix: Build and run build scripts in lsif command
  • Loading branch information
bors committed Aug 12, 2024
2 parents ff63552 + 1b983e3 commit e66f3db
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
10 changes: 10 additions & 0 deletions src/tools/rust-analyzer/crates/load-cargo/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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()
Expand All @@ -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| {
Expand Down
11 changes: 6 additions & 5 deletions src/tools/rust-analyzer/crates/rust-analyzer/src/cli/lsif.rs
Original file line number Diff line number Diff line change
Expand Up @@ -276,26 +276,27 @@ 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,
with_proc_macro_server: ProcMacroServerChoice::Sysroot,
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)?;
let host = AnalysisHost::with_database(db);
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 {
Expand Down

0 comments on commit e66f3db

Please sign in to comment.