diff options
Diffstat (limited to 'crates/ra_ide_api/src/db.rs')
-rw-r--r-- | crates/ra_ide_api/src/db.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index cccf0ada4..b3f395502 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs | |||
@@ -41,6 +41,12 @@ impl salsa::Database for RootDatabase { | |||
41 | 41 | ||
42 | impl Default for RootDatabase { | 42 | impl Default for RootDatabase { |
43 | fn default() -> RootDatabase { | 43 | fn default() -> RootDatabase { |
44 | RootDatabase::new(None) | ||
45 | } | ||
46 | } | ||
47 | |||
48 | impl RootDatabase { | ||
49 | pub fn new(lru_capacity: Option<usize>) -> RootDatabase { | ||
44 | let mut db = RootDatabase { | 50 | let mut db = RootDatabase { |
45 | runtime: salsa::Runtime::default(), | 51 | runtime: salsa::Runtime::default(), |
46 | last_gc: time::Instant::now(), | 52 | last_gc: time::Instant::now(), |
@@ -49,9 +55,9 @@ impl Default for RootDatabase { | |||
49 | db.set_crate_graph(Default::default()); | 55 | db.set_crate_graph(Default::default()); |
50 | db.set_local_roots(Default::default()); | 56 | db.set_local_roots(Default::default()); |
51 | db.set_library_roots(Default::default()); | 57 | db.set_library_roots(Default::default()); |
52 | let lru_cap = ra_db::DEFAULT_LRU_CAP; | 58 | let lru_capacity = lru_capacity.unwrap_or(ra_db::DEFAULT_LRU_CAP); |
53 | db.query_mut(ra_db::ParseQuery).set_lru_capacity(lru_cap); | 59 | db.query_mut(ra_db::ParseQuery).set_lru_capacity(lru_capacity); |
54 | db.query_mut(hir::db::ParseMacroQuery).set_lru_capacity(lru_cap); | 60 | db.query_mut(hir::db::ParseMacroQuery).set_lru_capacity(lru_capacity); |
55 | db | 61 | db |
56 | } | 62 | } |
57 | } | 63 | } |