mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 07:04:49 +00:00
internal: Remove load-cargo dependency on ide
This commit is contained in:
parent
0ac05c0527
commit
4ee0dbdc04
18 changed files with 70 additions and 61 deletions
|
@ -16,8 +16,8 @@ use hir_def::{
|
|||
};
|
||||
use hir_ty::{Interner, Substitution, TyExt, TypeFlags};
|
||||
use ide::{
|
||||
Analysis, AnnotationConfig, DiagnosticsConfig, InlayFieldsToResolve, InlayHintsConfig, LineCol,
|
||||
RootDatabase,
|
||||
Analysis, AnalysisHost, AnnotationConfig, DiagnosticsConfig, InlayFieldsToResolve,
|
||||
InlayHintsConfig, LineCol, RootDatabase,
|
||||
};
|
||||
use ide_db::{
|
||||
base_db::{
|
||||
|
@ -90,9 +90,8 @@ impl flags::AnalysisStats {
|
|||
Some(build_scripts_sw.elapsed())
|
||||
};
|
||||
|
||||
let (host, vfs, _proc_macro) =
|
||||
let (db, vfs, _proc_macro) =
|
||||
load_workspace(workspace.clone(), &cargo_config.extra_env, &load_cargo_config)?;
|
||||
let db = host.raw_database();
|
||||
eprint!("{:<20} {}", "Database loaded:", db_load_sw.elapsed());
|
||||
eprint!(" (metadata {metadata_time}");
|
||||
if let Some(build_scripts_time) = build_scripts_time {
|
||||
|
@ -100,6 +99,9 @@ impl flags::AnalysisStats {
|
|||
}
|
||||
eprintln!(")");
|
||||
|
||||
let host = AnalysisHost::with_database(db);
|
||||
let db = host.raw_database();
|
||||
|
||||
let mut analysis_sw = self.stop_watch();
|
||||
|
||||
let mut krates = Crate::all(db);
|
||||
|
|
|
@ -5,7 +5,7 @@ use project_model::{CargoConfig, RustLibSource};
|
|||
use rustc_hash::FxHashSet;
|
||||
|
||||
use hir::{db::HirDatabase, Crate, HirFileIdExt, Module};
|
||||
use ide::{AssistResolveStrategy, DiagnosticsConfig, Severity};
|
||||
use ide::{AnalysisHost, AssistResolveStrategy, DiagnosticsConfig, Severity};
|
||||
use ide_db::base_db::SourceDatabaseExt;
|
||||
use load_cargo::{load_workspace_at, LoadCargoConfig, ProcMacroServerChoice};
|
||||
|
||||
|
@ -26,8 +26,9 @@ impl flags::Diagnostics {
|
|||
with_proc_macro_server,
|
||||
prefill_caches: false,
|
||||
};
|
||||
let (host, _vfs, _proc_macro) =
|
||||
let (db, _vfs, _proc_macro) =
|
||||
load_workspace_at(&self.path, &cargo_config, &load_cargo_config, &|_| {})?;
|
||||
let host = AnalysisHost::with_database(db);
|
||||
let db = host.raw_database();
|
||||
let analysis = host.analysis();
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ use std::env;
|
|||
use std::time::Instant;
|
||||
|
||||
use ide::{
|
||||
Analysis, FileId, FileRange, MonikerKind, PackageInformation, RootDatabase, StaticIndex,
|
||||
StaticIndexedFile, TokenId, TokenStaticData,
|
||||
Analysis, AnalysisHost, FileId, FileRange, MonikerKind, PackageInformation, RootDatabase,
|
||||
StaticIndex, StaticIndexedFile, TokenId, TokenStaticData,
|
||||
};
|
||||
use ide_db::{
|
||||
base_db::salsa::{self, ParallelDatabase},
|
||||
|
@ -300,8 +300,9 @@ impl flags::Lsif {
|
|||
|
||||
let workspace = ProjectWorkspace::load(manifest, &cargo_config, no_progress)?;
|
||||
|
||||
let (host, vfs, _proc_macro) =
|
||||
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();
|
||||
|
||||
|
|
|
@ -20,9 +20,8 @@ impl flags::RunTests {
|
|||
with_proc_macro_server: ProcMacroServerChoice::Sysroot,
|
||||
prefill_caches: false,
|
||||
};
|
||||
let (host, _vfs, _proc_macro) =
|
||||
let (ref db, _vfs, _proc_macro) =
|
||||
load_workspace_at(&self.path, &cargo_config, &load_cargo_config, &|_| {})?;
|
||||
let db = host.raw_database();
|
||||
|
||||
let tests = all_modules(db)
|
||||
.into_iter()
|
||||
|
|
|
@ -87,8 +87,9 @@ impl Tester {
|
|||
with_proc_macro_server: ProcMacroServerChoice::Sysroot,
|
||||
prefill_caches: false,
|
||||
};
|
||||
let (host, _vfs, _proc_macro) =
|
||||
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 krates = Crate::all(db);
|
||||
let root_crate = krates.iter().cloned().find(|krate| krate.origin(db).is_local()).unwrap();
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
use std::{path::PathBuf, time::Instant};
|
||||
|
||||
use ide::{
|
||||
LineCol, MonikerDescriptorKind, MonikerResult, StaticIndex, StaticIndexedFile,
|
||||
AnalysisHost, LineCol, MonikerDescriptorKind, MonikerResult, StaticIndex, StaticIndexedFile,
|
||||
SymbolInformationKind, TextRange, TokenId,
|
||||
};
|
||||
use ide_db::LineIndexDatabase;
|
||||
|
@ -42,12 +42,13 @@ impl flags::Scip {
|
|||
config.update(json)?;
|
||||
}
|
||||
let cargo_config = config.cargo();
|
||||
let (host, vfs, _) = load_workspace_at(
|
||||
let (db, vfs, _) = load_workspace_at(
|
||||
root.as_path().as_ref(),
|
||||
&cargo_config,
|
||||
&load_cargo_config,
|
||||
&no_progress,
|
||||
)?;
|
||||
let host = AnalysisHost::with_database(db);
|
||||
let db = host.raw_database();
|
||||
let analysis = host.analysis();
|
||||
|
||||
|
@ -324,7 +325,7 @@ fn moniker_to_symbol(moniker: &MonikerResult) -> scip_types::Symbol {
|
|||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use ide::{AnalysisHost, FilePosition, TextSize};
|
||||
use ide::{FilePosition, TextSize};
|
||||
use scip::symbol::format_symbol;
|
||||
use test_fixture::ChangeFixture;
|
||||
|
||||
|
|
|
@ -17,13 +17,12 @@ impl flags::Ssr {
|
|||
with_proc_macro_server: ProcMacroServerChoice::Sysroot,
|
||||
prefill_caches: false,
|
||||
};
|
||||
let (host, vfs, _proc_macro) = load_workspace_at(
|
||||
let (ref db, vfs, _proc_macro) = load_workspace_at(
|
||||
&std::env::current_dir()?,
|
||||
&cargo_config,
|
||||
&load_cargo_config,
|
||||
&|_| {},
|
||||
)?;
|
||||
let db = host.raw_database();
|
||||
let mut match_finder = MatchFinder::at_first_file(db)?;
|
||||
for rule in self.rule {
|
||||
match_finder.add_rule(rule)?;
|
||||
|
@ -54,13 +53,12 @@ impl flags::Search {
|
|||
with_proc_macro_server: ProcMacroServerChoice::Sysroot,
|
||||
prefill_caches: false,
|
||||
};
|
||||
let (host, _vfs, _proc_macro) = load_workspace_at(
|
||||
let (ref db, _vfs, _proc_macro) = load_workspace_at(
|
||||
&std::env::current_dir()?,
|
||||
&cargo_config,
|
||||
&load_cargo_config,
|
||||
&|_| {},
|
||||
)?;
|
||||
let db = host.raw_database();
|
||||
let mut match_finder = MatchFinder::at_first_file(db)?;
|
||||
for pattern in self.pattern {
|
||||
match_finder.add_search_pattern(pattern)?;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
//! which you can use to paste the command in terminal and add `--release` manually.
|
||||
|
||||
use hir::Change;
|
||||
use ide::{CallableSnippets, CompletionConfig, FilePosition, TextSize};
|
||||
use ide::{AnalysisHost, CallableSnippets, CompletionConfig, FilePosition, TextSize};
|
||||
use ide_db::{
|
||||
imports::insert_use::{ImportGranularity, InsertUseConfig},
|
||||
SnippetCap,
|
||||
|
@ -43,10 +43,11 @@ fn integrated_highlighting_benchmark() {
|
|||
prefill_caches: false,
|
||||
};
|
||||
|
||||
let (mut host, vfs, _proc_macro) = {
|
||||
let (db, vfs, _proc_macro) = {
|
||||
let _it = stdx::timeit("workspace loading");
|
||||
load_workspace_at(&workspace_to_load, &cargo_config, &load_cargo_config, &|_| {}).unwrap()
|
||||
};
|
||||
let mut host = AnalysisHost::with_database(db);
|
||||
|
||||
let file_id = {
|
||||
let file = workspace_to_load.join(file);
|
||||
|
@ -99,10 +100,11 @@ fn integrated_completion_benchmark() {
|
|||
prefill_caches: true,
|
||||
};
|
||||
|
||||
let (mut host, vfs, _proc_macro) = {
|
||||
let (db, vfs, _proc_macro) = {
|
||||
let _it = stdx::timeit("workspace loading");
|
||||
load_workspace_at(&workspace_to_load, &cargo_config, &load_cargo_config, &|_| {}).unwrap()
|
||||
};
|
||||
let mut host = AnalysisHost::with_database(db);
|
||||
|
||||
let file_id = {
|
||||
let file = workspace_to_load.join(file);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue