From be1a005ebd02298feb8d272278354411d16acdee Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 26 Jan 2019 11:09:39 +0300 Subject: fold syntax database into files database --- crates/ra_ide_api/src/call_info.rs | 2 +- crates/ra_ide_api/src/completion.rs | 2 +- crates/ra_ide_api/src/db.rs | 7 +++---- crates/ra_ide_api/src/extend_selection.rs | 2 +- crates/ra_ide_api/src/goto_definition.rs | 2 +- crates/ra_ide_api/src/hover.rs | 2 +- crates/ra_ide_api/src/imp.rs | 2 +- crates/ra_ide_api/src/lib.rs | 2 +- crates/ra_ide_api/src/rename.rs | 2 +- crates/ra_ide_api/src/runnables.rs | 2 +- crates/ra_ide_api/src/syntax_highlighting.rs | 2 +- 11 files changed, 13 insertions(+), 14 deletions(-) (limited to 'crates/ra_ide_api/src') diff --git a/crates/ra_ide_api/src/call_info.rs b/crates/ra_ide_api/src/call_info.rs index 0449c1902..0eb70df16 100644 --- a/crates/ra_ide_api/src/call_info.rs +++ b/crates/ra_ide_api/src/call_info.rs @@ -1,4 +1,4 @@ -use ra_db::SyntaxDatabase; +use ra_db::FilesDatabase; use ra_syntax::{ AstNode, SyntaxNode, TextUnit, TextRange, SyntaxKind::FN_DEF, diff --git a/crates/ra_ide_api/src/completion.rs b/crates/ra_ide_api/src/completion.rs index 565d57c37..581ba5de8 100644 --- a/crates/ra_ide_api/src/completion.rs +++ b/crates/ra_ide_api/src/completion.rs @@ -9,7 +9,7 @@ mod complete_path; mod complete_scope; mod complete_postfix; -use ra_db::SyntaxDatabase; +use ra_db::FilesDatabase; use crate::{ db, diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index 30891aed4..02e12437c 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs @@ -1,7 +1,7 @@ use std::sync::Arc; use ra_db::{ - BaseDatabase, FileId, Canceled, + CheckCanceled, FileId, Canceled, salsa::{self, Database}, }; @@ -9,7 +9,6 @@ use crate::{symbol_index, LineIndex}; #[salsa::database( ra_db::FilesDatabaseStorage, - ra_db::SyntaxDatabaseStorage, LineIndexDatabaseStorage, symbol_index::SymbolsDatabaseStorage, hir::db::HirDatabaseStorage @@ -54,7 +53,7 @@ impl salsa::ParallelDatabase for RootDatabase { } } -impl BaseDatabase for RootDatabase {} +impl CheckCanceled for RootDatabase {} impl AsRef for RootDatabase { fn as_ref(&self) -> &hir::HirInterner { @@ -63,7 +62,7 @@ impl AsRef for RootDatabase { } #[salsa::query_group(LineIndexDatabaseStorage)] -pub(crate) trait LineIndexDatabase: ra_db::FilesDatabase + BaseDatabase { +pub(crate) trait LineIndexDatabase: ra_db::FilesDatabase + CheckCanceled { fn line_index(&self, file_id: FileId) -> Arc; } diff --git a/crates/ra_ide_api/src/extend_selection.rs b/crates/ra_ide_api/src/extend_selection.rs index 718b4def5..bc19b0b9d 100644 --- a/crates/ra_ide_api/src/extend_selection.rs +++ b/crates/ra_ide_api/src/extend_selection.rs @@ -1,4 +1,4 @@ -use ra_db::SyntaxDatabase; +use ra_db::FilesDatabase; use ra_syntax::{ SyntaxNode, AstNode, SourceFile, ast, algo::find_covering_node, diff --git a/crates/ra_ide_api/src/goto_definition.rs b/crates/ra_ide_api/src/goto_definition.rs index dc0c50918..0e40e35ce 100644 --- a/crates/ra_ide_api/src/goto_definition.rs +++ b/crates/ra_ide_api/src/goto_definition.rs @@ -1,4 +1,4 @@ -use ra_db::{FileId, SyntaxDatabase}; +use ra_db::{FileId, FilesDatabase}; use ra_syntax::{ AstNode, ast, algo::find_node_at_offset, diff --git a/crates/ra_ide_api/src/hover.rs b/crates/ra_ide_api/src/hover.rs index 4d4bfbc4d..04f5a746e 100644 --- a/crates/ra_ide_api/src/hover.rs +++ b/crates/ra_ide_api/src/hover.rs @@ -1,4 +1,4 @@ -use ra_db::{SyntaxDatabase}; +use ra_db::FilesDatabase; use ra_syntax::{ AstNode, SyntaxNode, TreeArc, ast, algo::{find_covering_node, find_node_at_offset, find_leaf_at_offset, visit::{visitor, Visitor}}, diff --git a/crates/ra_ide_api/src/imp.rs b/crates/ra_ide_api/src/imp.rs index bd9e3f1e3..f2d41321d 100644 --- a/crates/ra_ide_api/src/imp.rs +++ b/crates/ra_ide_api/src/imp.rs @@ -4,7 +4,7 @@ use hir::{ self, Problem, source_binder }; use ra_db::{ - FilesDatabase, SourceRoot, SourceRootId, SyntaxDatabase, + FilesDatabase, SourceRoot, SourceRootId, salsa::{Database, SweepStrategy}, }; use ra_ide_api_light::{self, assists, LocalEdit, Severity}; diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs index ffd026b04..8380aa6c2 100644 --- a/crates/ra_ide_api/src/lib.rs +++ b/crates/ra_ide_api/src/lib.rs @@ -34,7 +34,7 @@ use std::{fmt, sync::Arc}; use ra_syntax::{SourceFile, TreeArc, TextRange, TextUnit}; use ra_text_edit::TextEdit; use ra_db::{ - SyntaxDatabase, FilesDatabase, BaseDatabase, + FilesDatabase, CheckCanceled, salsa::{self, ParallelDatabase}, }; use rayon::prelude::*; diff --git a/crates/ra_ide_api/src/rename.rs b/crates/ra_ide_api/src/rename.rs index 5b767addd..fe81609df 100644 --- a/crates/ra_ide_api/src/rename.rs +++ b/crates/ra_ide_api/src/rename.rs @@ -17,7 +17,7 @@ use crate::{ SourceChange, SourceFileEdit, }; -use ra_db::{FilesDatabase, SyntaxDatabase}; +use ra_db::FilesDatabase; use relative_path::RelativePath; pub(crate) fn rename( diff --git a/crates/ra_ide_api/src/runnables.rs b/crates/ra_ide_api/src/runnables.rs index 0f9f8deb3..e21724207 100644 --- a/crates/ra_ide_api/src/runnables.rs +++ b/crates/ra_ide_api/src/runnables.rs @@ -3,7 +3,7 @@ use ra_syntax::{ TextRange, SyntaxNode, ast::{self, AstNode, NameOwner, ModuleItemOwner}, }; -use ra_db::SyntaxDatabase; +use ra_db::FilesDatabase; use crate::{db::RootDatabase, FileId}; diff --git a/crates/ra_ide_api/src/syntax_highlighting.rs b/crates/ra_ide_api/src/syntax_highlighting.rs index a4d3ad005..cfa0257dd 100644 --- a/crates/ra_ide_api/src/syntax_highlighting.rs +++ b/crates/ra_ide_api/src/syntax_highlighting.rs @@ -1,5 +1,5 @@ use ra_syntax::{ast, AstNode,}; -use ra_db::SyntaxDatabase; +use ra_db::FilesDatabase; use crate::{ FileId, HighlightedRange, -- cgit v1.2.3 From 3223de59765cae816099e8684a2caf13bc69bb2e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 26 Jan 2019 11:17:05 +0300 Subject: move ide queries to ide db --- crates/ra_ide_api/src/db.rs | 15 ++++++--------- crates/ra_ide_api/src/symbol_index.rs | 8 ++++++++ 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'crates/ra_ide_api/src') diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index 02e12437c..119190e0a 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs @@ -1,11 +1,11 @@ use std::sync::Arc; use ra_db::{ - CheckCanceled, FileId, Canceled, - salsa::{self, Database}, + CheckCanceled, FileId, Canceled, FilesDatabase, + salsa, }; -use crate::{symbol_index, LineIndex}; +use crate::{LineIndex, symbol_index::{self, SymbolsDatabase}}; #[salsa::database( ra_db::FilesDatabaseStorage, @@ -34,12 +34,9 @@ impl Default for RootDatabase { runtime: salsa::Runtime::default(), interner: Default::default(), }; - db.query_mut(ra_db::CrateGraphQuery) - .set((), Default::default()); - db.query_mut(ra_db::LocalRootsQuery) - .set((), Default::default()); - db.query_mut(ra_db::LibraryRootsQuery) - .set((), Default::default()); + db.set_crate_graph(Default::default()); + db.set_local_roots(Default::default()); + db.set_library_roots(Default::default()); db } } diff --git a/crates/ra_ide_api/src/symbol_index.rs b/crates/ra_ide_api/src/symbol_index.rs index e073a349e..4d81d14b3 100644 --- a/crates/ra_ide_api/src/symbol_index.rs +++ b/crates/ra_ide_api/src/symbol_index.rs @@ -49,6 +49,14 @@ pub(crate) trait SymbolsDatabase: hir::db::HirDatabase { fn file_symbols(&self, file_id: FileId) -> Arc; #[salsa::input] fn library_symbols(&self, id: SourceRootId) -> Arc; + /// The set of "local" (that is, from the current workspace) roots. + /// Files in local roots are assumed to change frequently. + #[salsa::input] + fn local_roots(&self) -> Arc>; + /// The set of roots for crates.io libraries. + /// Files in libraries are assumed to never change. + #[salsa::input] + fn library_roots(&self) -> Arc>; } fn file_symbols(db: &impl SymbolsDatabase, file_id: FileId) -> Arc { -- cgit v1.2.3 From 4711cbcace33e34d43f880d30c2778c843240f27 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 26 Jan 2019 11:20:30 +0300 Subject: rename FilesDatabase -> SourceDatabase --- crates/ra_ide_api/src/call_info.rs | 2 +- crates/ra_ide_api/src/completion.rs | 2 +- crates/ra_ide_api/src/db.rs | 8 ++++---- crates/ra_ide_api/src/extend_selection.rs | 2 +- crates/ra_ide_api/src/goto_definition.rs | 2 +- crates/ra_ide_api/src/hover.rs | 2 +- crates/ra_ide_api/src/imp.rs | 2 +- crates/ra_ide_api/src/lib.rs | 2 +- crates/ra_ide_api/src/rename.rs | 2 +- crates/ra_ide_api/src/runnables.rs | 2 +- crates/ra_ide_api/src/symbol_index.rs | 2 +- crates/ra_ide_api/src/syntax_highlighting.rs | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) (limited to 'crates/ra_ide_api/src') diff --git a/crates/ra_ide_api/src/call_info.rs b/crates/ra_ide_api/src/call_info.rs index 0eb70df16..728f2df30 100644 --- a/crates/ra_ide_api/src/call_info.rs +++ b/crates/ra_ide_api/src/call_info.rs @@ -1,4 +1,4 @@ -use ra_db::FilesDatabase; +use ra_db::SourceDatabase; use ra_syntax::{ AstNode, SyntaxNode, TextUnit, TextRange, SyntaxKind::FN_DEF, diff --git a/crates/ra_ide_api/src/completion.rs b/crates/ra_ide_api/src/completion.rs index 581ba5de8..be64f2c5a 100644 --- a/crates/ra_ide_api/src/completion.rs +++ b/crates/ra_ide_api/src/completion.rs @@ -9,7 +9,7 @@ mod complete_path; mod complete_scope; mod complete_postfix; -use ra_db::FilesDatabase; +use ra_db::SourceDatabase; use crate::{ db, diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index 119190e0a..3da93ec35 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs @@ -1,14 +1,14 @@ 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 @@ -59,11 +59,11 @@ impl AsRef for RootDatabase { } #[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; } -fn line_index(db: &impl ra_db::FilesDatabase, file_id: FileId) -> Arc { +fn line_index(db: &impl ra_db::SourceDatabase, file_id: FileId) -> Arc { let text = db.file_text(file_id); Arc::new(LineIndex::new(&*text)) } diff --git a/crates/ra_ide_api/src/extend_selection.rs b/crates/ra_ide_api/src/extend_selection.rs index bc19b0b9d..1cd955357 100644 --- a/crates/ra_ide_api/src/extend_selection.rs +++ b/crates/ra_ide_api/src/extend_selection.rs @@ -1,4 +1,4 @@ -use ra_db::FilesDatabase; +use ra_db::SourceDatabase; use ra_syntax::{ SyntaxNode, AstNode, SourceFile, ast, algo::find_covering_node, diff --git a/crates/ra_ide_api/src/goto_definition.rs b/crates/ra_ide_api/src/goto_definition.rs index 0e40e35ce..180cc7c80 100644 --- a/crates/ra_ide_api/src/goto_definition.rs +++ b/crates/ra_ide_api/src/goto_definition.rs @@ -1,4 +1,4 @@ -use ra_db::{FileId, FilesDatabase}; +use ra_db::{FileId, SourceDatabase}; use ra_syntax::{ AstNode, ast, algo::find_node_at_offset, diff --git a/crates/ra_ide_api/src/hover.rs b/crates/ra_ide_api/src/hover.rs index 04f5a746e..b6d727399 100644 --- a/crates/ra_ide_api/src/hover.rs +++ b/crates/ra_ide_api/src/hover.rs @@ -1,4 +1,4 @@ -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}}, diff --git a/crates/ra_ide_api/src/imp.rs b/crates/ra_ide_api/src/imp.rs index f2d41321d..1222fdc44 100644 --- a/crates/ra_ide_api/src/imp.rs +++ b/crates/ra_ide_api/src/imp.rs @@ -4,7 +4,7 @@ use hir::{ 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}; diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs index 8380aa6c2..62a1934f4 100644 --- a/crates/ra_ide_api/src/lib.rs +++ b/crates/ra_ide_api/src/lib.rs @@ -34,7 +34,7 @@ use std::{fmt, sync::Arc}; 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::*; diff --git a/crates/ra_ide_api/src/rename.rs b/crates/ra_ide_api/src/rename.rs index fe81609df..81ca0537c 100644 --- a/crates/ra_ide_api/src/rename.rs +++ b/crates/ra_ide_api/src/rename.rs @@ -17,7 +17,7 @@ use crate::{ SourceChange, SourceFileEdit, }; -use ra_db::FilesDatabase; +use ra_db::SourceDatabase; use relative_path::RelativePath; pub(crate) fn rename( diff --git a/crates/ra_ide_api/src/runnables.rs b/crates/ra_ide_api/src/runnables.rs index e21724207..0f2d00f13 100644 --- a/crates/ra_ide_api/src/runnables.rs +++ b/crates/ra_ide_api/src/runnables.rs @@ -3,7 +3,7 @@ use ra_syntax::{ TextRange, SyntaxNode, ast::{self, AstNode, NameOwner, ModuleItemOwner}, }; -use ra_db::FilesDatabase; +use ra_db::SourceDatabase; use crate::{db::RootDatabase, FileId}; diff --git a/crates/ra_ide_api/src/symbol_index.rs b/crates/ra_ide_api/src/symbol_index.rs index 4d81d14b3..230ff410e 100644 --- a/crates/ra_ide_api/src/symbol_index.rs +++ b/crates/ra_ide_api/src/symbol_index.rs @@ -34,7 +34,7 @@ use ra_syntax::{ ast::{self, NameOwner}, }; use ra_db::{ - SourceRootId, FilesDatabase, + SourceRootId, SourceDatabase, salsa::{self, ParallelDatabase}, }; use rayon::prelude::*; diff --git a/crates/ra_ide_api/src/syntax_highlighting.rs b/crates/ra_ide_api/src/syntax_highlighting.rs index cfa0257dd..16d23e140 100644 --- a/crates/ra_ide_api/src/syntax_highlighting.rs +++ b/crates/ra_ide_api/src/syntax_highlighting.rs @@ -1,5 +1,5 @@ use ra_syntax::{ast, AstNode,}; -use ra_db::FilesDatabase; +use ra_db::SourceDatabase; use crate::{ FileId, HighlightedRange, -- cgit v1.2.3