diff --git a/crates/rust-analyzer/src/cli/analysis_bench.rs b/crates/rust-analyzer/src/cli/analysis_bench.rs index a01b498229..f4068937e7 100644 --- a/crates/rust-analyzer/src/cli/analysis_bench.rs +++ b/crates/rust-analyzer/src/cli/analysis_bench.rs @@ -59,7 +59,12 @@ impl BenchCmd { let start = Instant::now(); eprint!("loading: "); - let (mut host, vfs) = load_cargo(&self.path, self.load_output_dirs, self.with_proc_macro)?; + let (mut host, vfs) = load_cargo( + &self.path, + &Default::default(), + self.load_output_dirs, + self.with_proc_macro, + )?; eprintln!("{:?}\n", start.elapsed()); let file_id = { diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs index 66416f7095..f0852d1254 100644 --- a/crates/rust-analyzer/src/cli/analysis_stats.rs +++ b/crates/rust-analyzer/src/cli/analysis_stats.rs @@ -57,7 +57,12 @@ impl AnalysisStatsCmd { }; let mut db_load_sw = self.stop_watch(); - let (host, vfs) = load_cargo(&self.path, self.load_output_dirs, self.with_proc_macro)?; + let (host, vfs) = load_cargo( + &self.path, + &Default::default(), + self.load_output_dirs, + self.with_proc_macro, + )?; let db = host.raw_database(); eprintln!("{:<20} {}", "Database loaded:", db_load_sw.elapsed()); diff --git a/crates/rust-analyzer/src/cli/diagnostics.rs b/crates/rust-analyzer/src/cli/diagnostics.rs index 0090fd2c27..6646e417cc 100644 --- a/crates/rust-analyzer/src/cli/diagnostics.rs +++ b/crates/rust-analyzer/src/cli/diagnostics.rs @@ -26,7 +26,7 @@ fn all_modules(db: &dyn HirDatabase) -> Vec { } pub fn diagnostics(path: &Path, load_output_dirs: bool, with_proc_macro: bool) -> Result<()> { - let (host, _vfs) = load_cargo(path, load_output_dirs, with_proc_macro)?; + let (host, _vfs) = load_cargo(path, &Default::default(), load_output_dirs, with_proc_macro)?; let db = host.raw_database(); let analysis = host.analysis(); diff --git a/crates/rust-analyzer/src/cli/load_cargo.rs b/crates/rust-analyzer/src/cli/load_cargo.rs index e12e871806..4669c9bc34 100644 --- a/crates/rust-analyzer/src/cli/load_cargo.rs +++ b/crates/rust-analyzer/src/cli/load_cargo.rs @@ -15,12 +15,13 @@ use crate::reload::{ProjectFolders, SourceRootConfig}; pub fn load_cargo( root: &Path, + config: &CargoConfig, load_out_dirs_from_check: bool, with_proc_macro: bool, ) -> Result<(AnalysisHost, vfs::Vfs)> { let root = AbsPathBuf::assert(std::env::current_dir()?.join(root)); let root = ProjectManifest::discover_single(&root)?; - let ws = ProjectWorkspace::load(root, &CargoConfig::default(), &|_| {})?; + let ws = ProjectWorkspace::load(root, config, &|_| {})?; let (sender, receiver) = unbounded(); let mut vfs = vfs::Vfs::default(); @@ -116,7 +117,7 @@ mod tests { #[test] fn test_loading_rust_analyzer() { let path = Path::new(env!("CARGO_MANIFEST_DIR")).parent().unwrap().parent().unwrap(); - let (host, _vfs) = load_cargo(path, false, false).unwrap(); + let (host, _vfs) = load_cargo(path, &Default::default(), false, false).unwrap(); let n_crates = Crate::all(host.raw_database()).len(); // RA has quite a few crates, but the exact count doesn't matter assert!(n_crates > 20); diff --git a/crates/rust-analyzer/src/cli/ssr.rs b/crates/rust-analyzer/src/cli/ssr.rs index bbb550ec9a..8ab43e0f76 100644 --- a/crates/rust-analyzer/src/cli/ssr.rs +++ b/crates/rust-analyzer/src/cli/ssr.rs @@ -5,7 +5,7 @@ use ssr::{MatchFinder, SsrPattern, SsrRule}; pub fn apply_ssr_rules(rules: Vec) -> Result<()> { use ide_db::base_db::SourceDatabaseExt; - let (host, vfs) = load_cargo(&std::env::current_dir()?, true, true)?; + let (host, vfs) = load_cargo(&std::env::current_dir()?, &Default::default(), true, true)?; let db = host.raw_database(); let mut match_finder = MatchFinder::at_first_file(db)?; for rule in rules { @@ -28,7 +28,7 @@ pub fn apply_ssr_rules(rules: Vec) -> Result<()> { pub fn search_for_patterns(patterns: Vec, debug_snippet: Option) -> Result<()> { use ide_db::base_db::SourceDatabaseExt; use ide_db::symbol_index::SymbolsDatabase; - let (host, _vfs) = load_cargo(&std::env::current_dir()?, true, true)?; + let (host, _vfs) = load_cargo(&std::env::current_dir()?, &Default::default(), true, true)?; let db = host.raw_database(); let mut match_finder = MatchFinder::at_first_file(db)?; for pattern in patterns {