pub range: TextRange,
}
-#[salsa::query_group(FilesDatabaseStorage)]
-pub trait FilesDatabase: salsa::Database + CheckCanceled {
+/// Database which stores all significant input facts: source code and project
+/// model. Everything else in rust-analyzer is derived from these queries.
+#[salsa::query_group(SourceDatabaseStorage)]
+pub trait SourceDatabase: salsa::Database + CheckCanceled {
/// Text of the file.
#[salsa::input]
fn file_text(&self, file_id: FileId) -> Arc<String>;
fn crate_graph(&self) -> Arc<CrateGraph>;
}
-fn source_root_crates(db: &impl FilesDatabase, id: SourceRootId) -> Arc<Vec<CrateId>> {
+fn source_root_crates(db: &impl SourceDatabase, id: SourceRootId) -> Arc<Vec<CrateId>> {
let root = db.source_root(id);
let graph = db.crate_graph();
let res = root
Arc::new(res)
}
-fn source_file(db: &impl FilesDatabase, file_id: FileId) -> TreeArc<SourceFile> {
+fn source_file(db: &impl SourceDatabase, file_id: FileId) -> TreeArc<SourceFile> {
let text = db.file_text(file_id);
SourceFile::parse(&*text)
}
use std::sync::Arc;
use ra_syntax::{SyntaxNode, TreeArc, SourceFile};
-use ra_db::{FilesDatabase, CrateId, salsa};
+use ra_db::{SourceDatabase, CrateId, salsa};
use crate::{
MacroCallId, HirFileId,
};
#[salsa::query_group(HirDatabaseStorage)]
-pub trait HirDatabase: FilesDatabase + AsRef<HirInterner> {
+pub trait HirDatabase: SourceDatabase + AsRef<HirInterner> {
#[salsa::invoke(HirFileId::hir_source_file)]
fn hir_source_file(&self, file_id: HirFileId) -> TreeArc<SourceFile>;
use parking_lot::Mutex;
use ra_db::{
- CheckCanceled, FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId, FilesDatabase, salsa,
+ CheckCanceled, FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId, SourceDatabase, salsa,
};
use relative_path::RelativePathBuf;
use test_utils::{parse_fixture, CURSOR_MARKER, extract_offset};
pub const WORKSPACE: SourceRootId = SourceRootId(0);
-#[salsa::database(ra_db::FilesDatabaseStorage, db::HirDatabaseStorage)]
+#[salsa::database(ra_db::SourceDatabaseStorage, db::HirDatabaseStorage)]
#[derive(Debug)]
pub(crate) struct MockDatabase {
events: Mutex<Option<Vec<salsa::Event<MockDatabase>>>>,
use std::sync::Arc;
-use ra_db::{CrateGraph, SourceRootId, FilesDatabase};
+use ra_db::{CrateGraph, SourceRootId, SourceDatabase};
use relative_path::RelativePath;
use test_utils::{assert_eq_text, covers};
use std::sync::Arc;
use std::fmt::Write;
-use ra_db::{FilesDatabase, salsa::Database};
+use ra_db::{SourceDatabase, salsa::Database};
use ra_syntax::ast::{self, AstNode};
use crate::{
-use ra_db::FilesDatabase;
+use ra_db::SourceDatabase;
use ra_syntax::{
AstNode, SyntaxNode, TextUnit, TextRange,
SyntaxKind::FN_DEF,
mod complete_scope;
mod complete_postfix;
-use ra_db::FilesDatabase;
+use ra_db::SourceDatabase;
use crate::{
db,
use std::sync::Arc;
use ra_db::{
- CheckCanceled, FileId, Canceled, FilesDatabase,
+ CheckCanceled, FileId, Canceled, SourceDatabase,
salsa,
};
use crate::{LineIndex, symbol_index::{self, SymbolsDatabase}};
#[salsa::database(
- ra_db::FilesDatabaseStorage,
+ ra_db::SourceDatabaseStorage,
LineIndexDatabaseStorage,
symbol_index::SymbolsDatabaseStorage,
hir::db::HirDatabaseStorage
}
#[salsa::query_group(LineIndexDatabaseStorage)]
-pub(crate) trait LineIndexDatabase: ra_db::FilesDatabase + CheckCanceled {
+pub(crate) trait LineIndexDatabase: ra_db::SourceDatabase + CheckCanceled {
fn line_index(&self, file_id: FileId) -> Arc<LineIndex>;
}
-fn line_index(db: &impl ra_db::FilesDatabase, file_id: FileId) -> Arc<LineIndex> {
+fn line_index(db: &impl ra_db::SourceDatabase, file_id: FileId) -> Arc<LineIndex> {
let text = db.file_text(file_id);
Arc::new(LineIndex::new(&*text))
}
-use ra_db::FilesDatabase;
+use ra_db::SourceDatabase;
use ra_syntax::{
SyntaxNode, AstNode, SourceFile,
ast, algo::find_covering_node,
-use ra_db::{FileId, FilesDatabase};
+use ra_db::{FileId, SourceDatabase};
use ra_syntax::{
AstNode, ast,
algo::find_node_at_offset,
-use ra_db::FilesDatabase;
+use ra_db::SourceDatabase;
use ra_syntax::{
AstNode, SyntaxNode, TreeArc, ast,
algo::{find_covering_node, find_node_at_offset, find_leaf_at_offset, visit::{visitor, Visitor}},
self, Problem, source_binder
};
use ra_db::{
- FilesDatabase, SourceRoot, SourceRootId,
+ SourceDatabase, SourceRoot, SourceRootId,
salsa::{Database, SweepStrategy},
};
use ra_ide_api_light::{self, assists, LocalEdit, Severity};
use ra_syntax::{SourceFile, TreeArc, TextRange, TextUnit};
use ra_text_edit::TextEdit;
use ra_db::{
- FilesDatabase, CheckCanceled,
+ SourceDatabase, CheckCanceled,
salsa::{self, ParallelDatabase},
};
use rayon::prelude::*;
SourceChange,
SourceFileEdit,
};
-use ra_db::FilesDatabase;
+use ra_db::SourceDatabase;
use relative_path::RelativePath;
pub(crate) fn rename(
TextRange, SyntaxNode,
ast::{self, AstNode, NameOwner, ModuleItemOwner},
};
-use ra_db::FilesDatabase;
+use ra_db::SourceDatabase;
use crate::{db::RootDatabase, FileId};
ast::{self, NameOwner},
};
use ra_db::{
- SourceRootId, FilesDatabase,
+ SourceRootId, SourceDatabase,
salsa::{self, ParallelDatabase},
};
use rayon::prelude::*;
use ra_syntax::{ast, AstNode,};
-use ra_db::FilesDatabase;
+use ra_db::SourceDatabase;
use crate::{
FileId, HighlightedRange,